我正在尝试使用C#制作DLL,以用于其他几种语言。我找到了RGiesecke的DllExport,但它似乎不起作用。它可以很好地构建并生成一个dll,但是当我在Dependency Walker中打开它时,它没有显示任何功能,而且我的调用代码也找不到它们。

我创建了一个新的“类库”项目(VS 2013),然后从NuGet安装了“非托管导出(DllExport for .Net)”。我需要任何项目设置吗?

这是我的代码。

using System;
using System.Collections.Generic;
using System.Text;
using RGiesecke.DllExport;

namespace ToolServiceDLL
{
    public class Class1
    {
      [DllExport("addUp", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
      public static double addUp(double num1, double num2)
      {
        return num1 + num2;
      }

      [DllExport("get5", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
      public static int get5()
      {
        return 5;
      }
    }
}

最佳答案

我发现了问题。它在RGiesecke文档中有,但我没想到。在项目设置->构建->平台目标中:您不能将其设置为“任何CPU”。您必须将其设置为x64或x86,具体取决于是否要在64位或32位应用程序中使用它。

关于c# - 带有RGiesecke.DllExport的C#DLL中没有函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34417972/

10-11 20:00