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

Compile C++ .lib files make them DLL for C# enviroment

本文关键字:环境 DLL lib C++ 文件 编译      更新时间:2023-10-16

我有很多这样的对象文件库:addrstor.expauthhlp.lib

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

我怎样才能做到这一点?

感谢

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);

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

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

如果你想把C++库编译成托管DLL(程序集),你不能这么做。您可以使用托管C++将源代码编译为程序集。