Skip to content

c#中如何调用cpp的dll文件

约 533 字大约 2 分钟

c#dll

2025-08-23

在c#项目中导入demo.dll

demo.dll文件是自己编写的一个c++的动态链接库。不知道怎么编写的,可以去查看:c++如何开发dll动态链接库

1、先将demo.dll文件复制粘贴到c#项目的生成exe的文件夹

将c++编写的动态链接库文件,即demo.dll文件,复制粘贴或者移动到 c#项目中的生成exe的文件夹里。因为如果要调用dll,需要和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方法,运行结果如下:

调用dll返回效果

本博客采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可