C#调用C++动态库

来源:互联网 发布:mac 我的所有文件很乱 编辑:程序博客网 时间:2024/06/05 18:37

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

1. 创建动态库项目

A.选择Win32-Win32 项目-输入名称/存放位置-确定
这里写图片描述
B.选择下一步
这里写图片描述
C.选择DLL 空项目
这里写图片描述
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.生成动态库:在项目上右键,选择生成
这里写图片描述
F.在输出页面,就会显示生成成功
这里写图片描述

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

这里写图片描述
这里写图片描述

实现调用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目录下,设置如下
这里写图片描述

4.再次运行,就成功了

这里写图片描述

原创粉丝点击