欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#调用C++动态库

程序员文章站 2022-07-14 09:38:14
...

通过一个很简单的demo,讲解以下如何在C#项目里调用C/C++动态库,实现的功能就是点击按钮,输出1+2的结果,求和功能利用C/C++代码实现

1. 创建动态库项目

A.选择Win32-Win32 项目-输入名称/存放位置-确定
C#调用C++动态库
B.选择下一步
C#调用C++动态库
C.选择DLL 空项目
C#调用C++动态库
D.test.h

extern "C" __declspec(dllexport) int add(int a, int b);

test.cpp

#include"test.h"

int add(int a, int b){
    return a + b;
}

E.生成动态库:在项目上右键,选择生成
C#调用C++动态库
F.在输出页面,就会显示生成成功
C#调用C++动态库

2. 创建C# Windows窗体应用程序

C#调用C++动态库
C#调用C++动态库

实现调用DLL函数:

[System.Runtime.InteropServices.DllImport("DllTest.dll", EntryPoint = "add",CallingConvention = System.Runtime.InteropServices.CallingConvention.Cdecl)]

private static extern int add(int a, int b);

创建按键控件,Label控件,输入按键控制程序

private void button1_Click(object sender, EventArgs e)
{
    int sum = add(1, 2);
    label1.Text = "计算结果为: " + sum.ToString();
}

3. 运行,会发现找不到Dll

需要设置.dll文件的输出目录,输出到C#项目的bin Debug或Release目录下,设置如下
C#调用C++动态库

4.再次运行,就成功了

C#调用C++动态库