#define Const_Terminator 0x20
#pragma data_seg("mydata")
static HINSTANCE DLLInst = NULL; //动态库句柄
#pragma data_seg() //
HANDLE hCom; //COM串口句柄
//------------------------------------------------------ //POLICE.DLL动态库函数功能定义 //------------------------------------------------------ HANDLE (__stdcall *Init_comm)(LPSTR str);//初始化通信口 BYTE (__stdcall *Exit)(HANDLE hCom);//关闭通信口 BYTE (__stdcall *Protocol)(HANDLE hCom,BYTE cmd,BYTE len,BYTE *_dt,BYTE *prlen,BYTE *prdt);//通信协议 BYTE (__stdcall *Pipe_control)(HANDLE hCom,BYTE mode);//多路控制typedef BYTE (__stdcall *Dev_escape)(HANDLE hCom);//断开多路控制
//----------------------------------------------------------------------------// // 功能:加载Police.dll动态库和其中的一些功能函数 // 输入/输出参数:无 // 版本:1.0 // 修改: //----------------------------------------------------------------------------// void CPosCtrl::InitDll() { DLLInst=LoadLibrary("police.dll"); if(DLLInst!=NULL) { Init_comm=(HANDLE(__stdcall *)(LPSTR))GetProcAddress(DLLInst,"Init_comm"); Exit=(BYTE(__stdcall *)(HANDLE))(GetProcAddress(DLLInst,"Exit")); Protocol=(BYTE(__stdcall *)(HANDLE,BYTE,BYTE,BYTE *_dt,BYTE *prlen,BYTE *prdt))(GetProcAddress(DLLInst,"Protocol")); Pipe_control=(BYTE(__stdcall *)(HANDLE,BYTE))(GetProcAddress(DLLInst,"Pipe_control")); Dev_escape=(BYTE(__stdcall *)(HANDLE))(GetProcAddress(DLLInst,"Dev_escape")); } else { ::MessageBox(NULL,"加载动态库失败!", "提示信息", MB_OK | MB_ICONINFORMATION); exit(0); } }
//----------------------------------------------------------------------------// // 功能:释放动态库 // 输入/输出参数:无 // 版本:1.0 // 修改: //----------------------------------------------------------------------------// void CPosCtrl::ExitDll() { if(DLLInst!=NULL) FreeLibrary(DLLInst); }
//----------------------------------------------------------------------------// // 功能:控件接口方法,对外提供关闭串口,释放动态库。 // 输入/输出参数:无 // 版本:1.0 // 修改: //----------------------------------------------------------------------------// STDMETHODIMP CPosCtrl::Quit() { // TODO: Add your implementation code here
(*Exit)(hCom); ExitDll(); ::MessageBox(NULL,"关闭COM口成功","提示信息",MB_OK | MB_ICONINFORMATION); return S_OK; }
STDMETHODIMP CPosCtrl::get_ComNo(short *pVal) { // TODO: Add your implementation code here *pVal = m_ComNo; return S_OK; }
STDMETHODIMP CPosCtrl::put_ComNo(short newVal)
{ // TODO: Add your implementation code here m_ComNo = newVal; return S_OK; }
//----------------------------------------------------------------------------// // 功能:提供初化动态库的对外接口,并实现打开口串口的功能。 // 输入/输出参数:11--要打开的串口号。 // 版本:1.0 // 修改: //----------------------------------------------------------------------------// STDMETHODIMP CPosCtrl  
说明:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
2/2 首页 上一页 1 2 |