本文讲述了C#如何调用C/C++库!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:
最近工作需要研究下C#能否调用已有的C/C++库,为此写了个小demo总结分享一下,供大家参考!
开发环境
Windows平台:
Visual Studio 2019
Visual Studio Code
.NET SDK 6
C/C++动态库
安装插件
vscode安装CMake Tools & C/C++插件
配置工程
通过CMake插件配置C++动态库工程
生成的文件有2个地方需要改动
add_library改为SHARED类型
add_library(MyNativeLibrary SHARED MyNativeLibrary.cpp)
1
cpp里实现导出接口
extern "C"
{
__declspec(dllexport) int __stdcall add(int a, int b) {
return a + b;
}
}
编译生成
通过vscode底部build按钮编译,dll文件生成在build目录
C#工程
在cmd中使用dotnet命令创建console工程
> dotnet new console -o MyApp
修改Program.cs为如下内容
using System.Runtime.InteropServices;
namespace NetCore
{
public class Program
{
[DllImport(@"MyNativeLibrary\build\Release\MyNativeLibrary.dll", EntryPoint =
"add", CallingConvention = CallingConvention.StdCall)]
public static extern int Add(int a, int b);
public static void Main(string[] args)
{
int result = Add(1 ,2);
Console.WriteLine("result is {0}", result);
Console.ReadKey();
}
}
}
dotnet run就可以看到运行效果了
> dotnet run
result is 3
小结
本文演示了C#调用C/C++动态库的方法,动态库部分需要熟悉vscode及cmake的使用,希望对大家能有帮助
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!