外观
c#中如何调用cpp的dll文件
在c#项目中导入demo.dll
demo.dll文件是自己编写的一个c++的动态链接库。不知道怎么编写的,可以去查看:c++如何开发dll动态链接库
1、先将demo.dll文件复制粘贴到c#项目的生成exe的文件夹
将c++编写的动态链接库文件,即demo.dll文件,复制粘贴或者移动到 c#项目中的生成exe的文件夹里。因为如果要调用dll,需要和exe同目录。

PS:因为编写的dll是x64的,所以,你的c#项目也要是x64的。要不然你编写dll的时候,编译x86版本出来,这样就不用考虑是否x64的c#项目。
2、在项目源码中,导入demo.dll
使用 DllImport() 方法来导入dll文件,如下代码:
// 导入demo.dll文件
[DllImport("demo.dll")]
// dll中的使用方法,extern 关键字用于声明方法的外部实现 static静态
private extern static int Sum(int a, int b);调用dll中的方法
上面一个步骤,我们已经导入了demo.dll文件,也声明了dll中的方法。那么下面就来调用吧,如下代码:
using System;
using System.Runtime.InteropServices;
namespace 测试使用cpp编写的dll
{
internal class Program
{
// 导入demo.dll文件
[DllImport("demo.dll")]
// dll中的使用方法,extern 关键字用于声明方法的外部实现 static静态
private extern static int Sum(int a, int b);
static void Main(string[] args)
{
try
{
// 声明一个整数并初始化值为0
int num = 0;
// 调用dll中的方法,然后结果赋值给num变量
num = Sum(15, 95);
// 打印得到的结果
Console.WriteLine(num);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}dll调用后返回效果展示
调用了demo.dll方法中的Sum方法,运行结果如下:

