首先我们新建一个C语言的WIN32项目
选择项目类型为DLL库
在新建的项目中我们添加Ccode.h,Ccode.cpp两个文件
Code.h
extern "C" __declspec(dllexport) int Minus(int a, int b);
extern "C" __declspec(dllexport) int Add(int a, int b);
Ccode.cpp
// Ccode.cpp : 定义 DLL 应用程序的导出函数。
//
#include "stdafx.h"
#include"Ccode.h"
int Minus(int a, int b)
{
return a - b;
}
int Add(int a, int b)
{
return a + b;
}
生成项目即可在对应的Debug/Release目录找到Ccode.dll
DLL文件的输出目录,右键,属性,可以看到输出目录选项
新建C# winform工程
软件界面如图所示
后台代码
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace CSharpCallC
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public class Ccode
{
[DllImport("Ccode.DLL", CallingConvention = CallingConvention.Cdecl)]
public static extern int Add(int a, int b);
[DllImport("Ccode.DLL", CallingConvention = CallingConvention.Cdecl)]
public static extern int Minus(int a, int b);
}
private void btn_Minus_Click(object sender, EventArgs e)
{
int a = Convert.ToInt32(tb_a.Text);
int b = Convert.ToInt32(tb_b.Text);
int c = Ccode.Minus(a,b);
tb_c.Text = c.ToString();
}
private void btn_Add_Click(object sender, EventArgs e)
{
int a = Convert.ToInt32(tb_a.Text);
int b = Convert.ToInt32(tb_b.Text);
int c = Ccode.Add(a, b);
tb_c.Text = c.ToString();
}
}
}