1)创建win32控制台应用程序dll
2)头文件申明
#pragma once
extern "C" _declspec(dllexport) int Sum(int a,int b);//加法函数。
extern "C" _declspec(dllexport) int Max(int a, int b);//取较大值函数
extern "C" _declspec(dllexport) int Min(int a, int b);//取较小值函数
extern "C" _declspec(dllexport) int AddSum(int *p,int n);//数组做参数
class cdll
{
public:
cdll(void);
~cdll(void);
};
3)源文件实现
#include "StdAfx.h"
#include "cdll.h"
cdll::cdll(void)
{
}
cdll::~cdll(void)
{
}
extern "C"_declspec(dllexport)int Sum(int a, int b)
{
return a+b;
}
extern "C"_declspec(dllexport)int Max(int a, int b)
{
if(a>=b)
return a;
else
return b;
}
extern "C"_declspec(dllexport)int Min(int a, int b)
{
if(a>=b)
return b;
else
return a;
}
extern "C"_declspec(dllexport)int AddSum(int *p,int n)//数组做参数
{
int i;
int sum=0;
for(i=0;i<n;i++)
{
sum+=*(p+i);
}
return sum;
}
4)编译导出dll
二、C#项目引用
1)建立C#项目
2)将c++下生成的dll拷贝到c#项目的bin\debug下
3)类申明中包含以下命名空间
using System.Text;
using System.Runtime.InteropServices;//引入dll文件中的函数提供了相应的类或者方法来支持托管/非托管模块间的互相调用。
4)类中导入要引入的函数
//引入dll文件中的函数 [DllImport("dllDemo.dll")] private static extern int Sum(int a, int b); [DllImport("dllDemo.dll")] private static extern int Max(int a, int b); [DllImport("dllDemo.dll")] private static extern int Min(int a, int b);