DLL中的函数如下:
extern "C" _declspec(dllexport) int add(int a,int b)
{
return a+b;
}
extern "C" _declspec(dllexport) int subtract(int a,int b)
{
return a-b;
}
在MFC工程中加载:
1、加载DLL
2、定义函数指针
3、获取所要加载的函数的地址
具体代码如下:
HINSTANCE hInst;
hInst = LoadLibrary("Dll1.dll"); //Dll1.dll动态链接库的名字
typedef int (*ADDPROC)(int a,int b);//定义函数指针类型
ADDPROC Add = (ADDPROC)GetProcAddress(hInst,"add");//获取函数int add(int a,int b)的地址
if(Add != NULL)
{
MessageBox("add is successfully loaded");
CString str;
str.Format("3+4=%d",Add(3,4));
MessageBox(str);
}
else
MessageBox("add is unsuccessfully loaded");
ADDPROC Subtract = (ADDPROC)GetProcAddress(hInst,"subtract");//获取函数int subtract(int a,int b)的地址
if(Subtract != NULL)
{
MessageBox("subtract is successfully loaded");
CString str;
str.Format("3-4=%d",Subtract(3,4));
MessageBox(str);
}
else
MessageBox("Subtract is unsuccessfully loaded");