Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编译C++。lib文件使它们成为C#环境的DLL_C#_C++ - Fatal编程技术网

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

编译C++。lib文件使它们成为C#环境的DLL,c#,c++,C#,C++,我有很多这样的对象文件库: addrstor.exp authhlp.lib 我希望将它们作为DLL添加到C#项目中,并尝试使用所涉及的方法 我怎样才能做到这一点 谢谢假设您想调用从托管(C#)代码调用的本机DLL(C++/libs): 确保从DLL中导出函数 使用任何喜爱的链接器将库链接到DLL 使用带注释的方法创建C#类 确保将C#项目设置为与本机DLL相同的位(x86/x64) 如果你想编译C++ C++ LIBS来管理DLL(程序集),你不能这么做。您可以使用托管C++编译源程序到汇

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

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

我怎样才能做到这一点


谢谢

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

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

如果你想编译C++ C++ LIBS来管理DLL(程序集),你不能这么做。您可以使用托管C++编译源程序到汇编程序。假设您想从托管代码(C++代码)调用的原生DLL(c++/LIBS):< /p>

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

如果你想编译C++ C++ LIBS来管理DLL(程序集),你不能这么做。您可以使用托管C++编译源程序到汇编程序。

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

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

extern "C" __declspec(dllexport) int someMethod(int paramA);
步骤2:导入到C#

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

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

extern "C" __declspec(dllexport) int someMethod(int paramA);
步骤2:导入到C#