前言
很多人说,C#底层太难了,今天搞个简单点的。看下如何通过最简单的方式C#调用C++写的DLL。以VS2022为蓝本。
C++
首先新建一个具有导出项的C++ DLL动态链接库项目,用其它的项目新建,比如动态链接库DLL项目,或者空项目或有各种问题。打开VS2022,选择如下图所示:
取名叫Dll1,项目建好了之后,结构如下图:
右击源文件-》添加-》新建项-》文件名:FileName.cpp,源文件文件夹下多了一个FileName.cpp的C++文件。其它文件是默认创建的,不用管它。
FileName.cpp添加如下代码
extern "C" __declspec(dllexport) int Add(int x, int y)
{
return x;
return y;
}
把Dll1项目生成下,.../x64/Debug目录下找到Dll1.dll。就是生成好的C++ DLL了。不需要任何设置。
C#
新建一个C#控制台应用程序,代码如下:
namespace ConsoleApp1
{
public class Test
{
[ ]
public static extern int Add(int a, int b);
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine(Add(33, 2));
Console.ReadLine();
}
}
}
}
DllImport里面包含的即是上面C++生成的Dll1的路径。
调用结果如下:
以上为最简单的C#调用C++ DLL的过程,全程不需要任何库文件,以及编译方面的设置