被调用者
1、编写 基于Win32 DLL,选择 DLL,空项目
2、要点:在头文件中,函数都要声明成 extern "C" __declspec(dllexport),为了便于导出
调用者
3、复制生成的dll以及头文件到项目目录下,将dll放置到debug目录下,将头文件放到源文件目录下,修改此文件中得外部声明为extern "C" __declspec(dllimport)4、调用
typedef int (*pInit)(void);
typedef BOOL (*pSend)(LPBYTE,int);
HINSTANCE hInst = LoadLibrary(_T("commdll.dll"));
if (hInst)
{
pInit initcomm = (pInit)GetProcAddress(hInst,"CommInit"); //串口初始化,包括打开,设置参数
if (NULL == initcomm)
{
MessageBox(LPCTSTR("init error"));
}
else
{
initcomm();
pSend senddata = (pSend)GetProcAddress(hInst,"SendData"); //发送数据
if (NULL == senddata)
{
MessageBox(LPCTSTR("DLL open error"));
}
else
{
UpdateData(TRUE);
senddata((LPBYTE)(LPCTSTR)sendparam,sizeof(sendparam));
MessageBox(sendparam);
UpdateData(FALSE);
}
}
}