无论调用win32.dll还是mfc.dll基本过程都是一样的
下面以CALLmfcdll的C#项目调用VC++编写的MFCDLL项目为例
1、在MFCDLL.h中加上
extern "C" __declspec(dllexport) int add(int x,int y);//导出函数
2、在MFCDLL.cpp中加上
extern "C" __declspec(dllexport) int add(int x,int y)
{
//focus=100;
return x+y;
}
3、更改dll的输出目录
MFCDLL属性页-->配置属性-->常规-->输出目录,编辑为CALLmfcdll的deug路径,这样点击生成MFCDLL,在debug文件夹下就有MFCDLL.dll、MFCDLL.lib等文件了
4、在CALLmfcdll中新建一个类专门用于调用dll,如CallDllFunction.cs
在CallDllFunction.cs中加上
using System.Runtime.InteropServices;
......
......
//导出函数
[DllImport("MFCDLL.dll", EntryPoint = "add", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int add(int x, int y);
5、最后就可以通过 类似“CallDllFunction.add(10, 20);”的形式调用dll中的方法了
时间: 2024-10-13 11:41:46