在DLL开发中,对涉及到具体的业务时,我们通常希望上层应用程序来处理,此时,使用回调函数可解决该需求。下面基于VC++ 6.0来实现DLL回调函数的使用例子。
一、建立DLL
新建一个“Win32 Dynamic=Link Library”空项目,分别添加CallBackAPI.h和CallBackAPI.cpp文件到Header Files和Source Files中,添加导出函数:
extern "C" __declspec(dllexport) void __stdcall call(void (*CallBack)())
{
CallBack();
}
CallBack();
}
编译输出CallBackDLL.lib和CallBackDLL.dll。
二、建立DLL调用Demo
新建一个“Win32 Consose Application”项目,隐式调用CallBackDLL.dll,实现如下:
#pragma comment(lib, "CallBackDLL.lib")
void ShowMsg()
{
printf("Show CallBack Info......\n");
}
int main(int argc, char* argv[])
{
call(ShowMsg);
return 0;
}
printf("Show CallBack Info......\n");
}
int main(int argc, char* argv[])
{
call(ShowMsg);
return 0;
}
把CallBackDLL.lib和CallBackDLL.dll复制到当前工作目录下,
编译、执行输出如下内容:
Show CallBack Info......
具体例子见资源:动态库回调函数实现示例
OVER