编译C ++ .lib文件使它们成为C#环境的DLL

时间:2012-03-08 23:37:14

标签: c# c++

我有很多这些目标文件库: addrstor.exp authhlp.lib

我想将它们作为DLL添加到C#项目中并尝试使用所涉及的方法。

我怎么能实现这个目标?

由于

2 个答案:

答案 0 :(得分:2)

C#非常适合调用“C”函数。一种方法是为C ++功能创建一个C适配器:

步骤1:从DLL中公开C函数:

extern "C" __declspec(dllexport) int someMethod(int paramA);

第2步:导入C#

[DllImport("your.dll", EntryPoint="someMethod")]
public static extern UInt32 NiceNameFunc(UInt32 paramA);

答案 1 :(得分:1)

假设您要调用托管(C#)代码调用的本机DLL(C ++ / libs):

  • 确保您的函数从DLL导出
  • 使用任何喜欢的链接器将Libs链接到DLL。
  • 使用注释为DllImport
  • 的方法创建C#类
  • 确保您的C#项目设置为与本机DLL相同的位(x86 / x64)

如果您希望将C ++ Libs编译为托管DLL(程序集) - 您不能这样做。您可以使用托管C ++将源代码编译为程序集。