C#调用C++动态库

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

1. 创建动态库项目

A.选择Win32-Win32 项目-输入名称/存放位置-确定
C#调用C++动态库_第1张图片
B.选择下一步
C#调用C++动态库_第2张图片
C.选择DLL 空项目
C#调用C++动态库_第3张图片
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++动态库_第4张图片
F.在输出页面,就会显示生成成功
C#调用C++动态库_第5张图片

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

C#调用C++动态库_第6张图片
C#调用C++动态库_第7张图片

实现调用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++动态库_第8张图片

4.再次运行,就成功了

C#调用C++动态库_第9张图片

你可能感兴趣的:(C-C++,c#,c语言)