创建从C#调用的C ++ DLL

时间:2015-07-31 04:53:46

标签: c# c++ dll

我正在尝试找到一个关于在DLL中创建C ++类的教程,可以从C#调用。我已经找到了一些教程,但是他们要么不在VS 2013社区中编译,要么就没有了。 C ++对象只有一些导出的函数(即,从消费的C#app调用,如ptr-> StartAction())。它有大约70个未公开的过程,用汇编语言这就是我需要使用C ++的原因。目前我通过dllimport等公开DLL中的一些函数。但是C#需要使用fixed(...)(以防止垃圾收集),这会使所有内容减慢很多(并且它们被称为1,000,000次)。因此需要将所有这些移动到DLL中。所以我需要一个可以在C#调用程序中实例化的类,然后调用dll中的公共方法。我正在使用.NET 4.0。该DLL只能由这个C#app使用。

2 个答案:

答案 0 :(得分:0)

您可以通过COM组件和IDL的帮助实现它,并在您的c#项目中使用互操作性dll的输出。有关详细信息,请参阅此link

答案 1 :(得分:0)

您可以使用C#的DllImport属性。这是一个示例签名:

[DllImport("path to dll", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.BStr)]
public static extern string methodName(string parameterName);

C#将在DLL中调用具有相同名称的方法。

不可能说出你真正需要的东西,因为我们没有你的方法声明。