【问题标题】:Can't create unmanaged dll using C# and Robert Giesecke's Unmanaged Exports tool无法使用 C# 和 Robert Giesecke 的非托管导出工具创建非托管 dll
【发布时间】:2013-12-15 19:26:40
【问题描述】:

我尝试使用 Robert Giesecke 的 Unmanaged Exports 在 C# (VS2010) 中创建非托管 dll。这是我的测试代码:

using RGiesecke.DllExport;

namespace UnmanagedDllTest
{
    public class TestClass
    {
        [DllExport]
        public static int Add1(int n)
        {
            return n + 1;
        }
    }
}

当我构建这个时,我得到一个错误:

UnmanagedDllTest -> D:\Dev\UnmanagedDllTest\UnmanagedDllTest\bin\x86\Debug\UnmanagedDllTest.dll
D:\Dev\UnmanagedDllTest\packages\UnmanagedExports.1.2.6\tools\RGiesecke.DllExport.targets(42,5): error : C:\Users\user\AppData\Local\Temp\tmpD5A0\UnmanagedDllTest.il(60) : error : syntax error at token '{' in:   {
D:\Dev\UnmanagedDllTest\packages\UnmanagedExports.1.2.6\tools\RGiesecke.DllExport.targets(42,5): error : 

我做错了什么?

【问题讨论】:

标签: c# .net visual-studio-2010 unmanaged


【解决方案1】:

我花了一整天的时间试图解决这个问题,最终我找到了解决方案! 我也有俄语窗口,在将 VS2012 更新到 VS2013 后,我的项目开始显示相同的错误:

错误:标记“{”处的语法错误:{

我尝试更改环境变量,但这没有帮助。 唯一对我有帮助的是更改非 unicode 程序的默认语言。您可以在“控制面板 > 语言和区域设置 > 其他 > 更改不支持 Unicode 的应用程序的语言”中找到此设置。我将语言更改为英语,重新启动...并获利!

【讨论】:

  • 你拯救了我的夜晚。也适用于 VS2015。
  • 你拯救了我的一天。在中文 win 10 下适用于 VS2015 更新 3 社区
【解决方案2】:

问题可能出在俄语版本的 Windows 中。来自俄罗斯的用户 z3d1k,我也是。在 .li 文件中输入俄文 cmets。

【讨论】:

  • 我试过英文版的windows,一切正常!!
【解决方案3】:

此错误已在分叉版本中修复。
DllExport/changelog.txt at 1f6b2d90599d17614782784c6b5bb37f05a2dea9 · 3F/DllExport

您可以通过以下命令重新安装来修复它。

UnInstall-Package UnmanagedExports 
Install-Package DllExport 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多