最近几天学习掉用硬件的动态库,下面是调用凭条打印机的初始化函数的举例:
1.声明动态库中的函数的属性
typedef int(WINAPI *PRINERINIT)(char *pszChar,char *pszRcCode); //要加上WINAPI,否则调用带参数的函数会有调用错误
2.声明,将动态库中的函数映射的执行函数中
PRINERINIT PrinterInit;
3.加载动态库
HINSTANCE dllHandle;
TCHAR szExePath[MAX_PATH];//路径
TCHAR *m_lpMove;
在OnInitDialog()函数中加载
GetModuleFileName(AfxGetApp()->m_hInstance, szExePath, sizeof(szExePath));
//GetShortPathName(szExePath, szExePath, MAX_PATH);
for (m_lpMove = szExePath + lstrlen(szExePath);
*(m_lpMove - 1) != '\\'; m_lpMove--);
lstrcpy (m_lpMove, "");
CString szDLLPath;
szDLLPath.Format(_T("%s%s"), szExePath, "Receipt_Zt532_ZhengTong.dll");
dllHandle=LoadLibrary(szDLLPath);//路径一定要正确
if (dllHandle!=NULL){
PrinterInit = (PRINERINIT)GetProcAddress(dllHandle,"PrinterInit");
}
4.调用函数:
char var[10]={0};
PrinterInit("com2",var);