C#调用C代码DLL

首先我们新建一个C语言的WIN32项目

C#调用C代码DLL_第1张图片

选择项目类型为DLL库

C#调用C代码DLL_第2张图片

在新建的项目中我们添加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#调用C代码DLL_第3张图片

 

新建C# winform工程

C#调用C代码DLL_第4张图片

软件界面如图所示

C#调用C代码DLL_第5张图片

后台代码

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();
        }
    }
}

生成exe运行即可

C#调用C代码DLL_第6张图片

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