C#调用C++写的DLL
第一步:用C++写好一个DLL,里面有一个导出函数 int Add(int plus1,int plus2),方法过程如下:
1)新建工程-->MFC AppWizard[dll],选择Dynamic link
2)新建头文件testDll.h,写入以下代码
#ifndef TestDll_H_
#define TestDll_H_
#ifdef MYLIBDLL
#define MYLIBDLL extern "C" _declspec(dllimport)
#else
#define MYLIBDLL extern "C" _declspec(dllexport)
#endif
MYLIBDLL int Add(int plus1, int plus2);
#endif
3)新建源文件testDll.cpp,写入以下代码
#include "stdafx.h"
#include "testdll.h"
int Add(int plus1,int plus2)
{
int add_result = plus1 + plus2;
return add_result;
}
4)修改向导生成的MyDll.def文件,如下所示
; MyDll.def : Declares the module parameters for the DLL.
LIBRARY "MyDll"
DESCRIPTION 'MyDll Windows Dynamic Link Library'
EXPORTS
Add @1
; Explicit exports can go here
第二步:将C++写的DLL程序编译得到DLL文件,如MyDll.dll.
第三步:新建C#工程,并将MyDll.dll拷贝到C#工程.\bin\Debug目录下
第四步:在C#工程中声明MyDll及其中的导出函数,示例如下:
[DllImport("MyDll",EntryPoint="Add",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]
public static extern int Add(int a,int b);
第五步:在C#工程类函数中调用Add函数测试是否成功调用