通用的动态链接库
extern "C" _declspec(dllexport) void ShowNote(char *pszText)
{
MessageBox(NULL,pszText,"提示 ",0);
}
extern "C" 关键字:防止c++语言对函数名重新命名改变,因为C++语言支持函数的重载
_declspec(dllexport) 关键字:导出动态链接库中的函数,如果不使用该关键字,导出列表中无法找到该函数,动态链接库就法务访问该函数。
访问动态链接库
1.定义动态链接库模块句柄
HMODULE m_hMod;
2.在窗口初始化的时候,
利用api函数loadLibray加载动态库
m_hMod=LoadLibray("./comdll.dll");
3.定义一个按钮单击事件
在定义按钮单击之前,先定义一个函数指针类型
typedef void(*funShowNote)(char* pszText)
在单击事件中首先定义一个函数指针对象
funShowNote showNote
利用APi函数GetProcAddress(m_hMode,"ShowNote")
将动态链接库中的函数名称转换为自己定义的函数指针对象
if(m_hMode)
{
ShowNote=(funShowNote)GetProAddress(m_hMod,"ShowNote");
if(ShowNote)
{
ShowNote("this is a test");
}
}