/*题:使用C#调用C编译的DLL文件示例:
环境:VS2008
功能:C#调用 add() sub()两函数。实现加减操作。
编者:张永辉 2012年12月5日
***************************************************************************************************/
1创建C语言的DLL文件
1 打开 Vs2008
创建项目 Visual C++ > Win32 > Win32控制台应用程序 取名c_dll
下一步 应用程序类型 > DLL
附加选项 > 空项目
完成
2 cdll.h cdll.c文件内容按如下写入:并加入工程
--------------cdll.h------------------------------
#define EX_API __declspec(dllexport) //解决在不同语言调用下的名字匹配问题
EX_API int add(int a,int b); //实现两个整数相加
EX_API int sub(int a,int b); //实现两个整数相减
--------------cdll.c------------------------------
#include "cdll.h"
EX_API int add(int a,int b) //实现两个整数相加
{
return a+b;
}
EX_API int sub (int a,int b) //实现两个整数相减
{
return a-b;
}
3 编译
在...\cdll\Debug\下就存在 cdll.dll 文件了
2在C#调用 dll文件
1 打开VS2008
新建项目 Visual C# > 控制台应用程序 曲名cshorp_call_dll
2 将cdll.dll复制到工程...\cshorp_call_dll\bin\Debug目录下
3 在Program.c 写如下代码
----------------Program.c-------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices; //**必须要的**
namespace cshorp_call_dll
{
class Program
{
[DllImport("cdll.dll")] //**必须要的**
public extern static int add(int a, int b);
[DllImport("cdll.dll")] //**必须要的**
public extern static int sub(int a, int b);
static void Main(string[] args)
{
int c = 0;
c = add(99, 1);
Console.WriteLine(c);
c = sub(2, 220);
Console.WriteLine(c);
Console.ReadLine();
}
}
}
4 编译即可。