windows中线程及dll函数调用
来源:互联网 发布:网络的优缺点英语作文 编辑:程序博客网 时间:2024/05/22 16:50
启动线程方法一MFC环境UINT SendThread(LPVOID pParam){ CPortalDlg * dlg=(CPortalDlg *)pParam; dlg->Send1();//调用CPortalDlg类的函数 ... ... return 0;}OnOK(){ CPortalDlg dlg=new CPortalDlg; AfxBeginThread((AFX_THREADPROC)SendThread,dlg);}方法二MFC环境unsigned __stdcall ThreadClientProc(LPVOID lparam){ ... ... return 0;}OnOK(){ HANDLEhThread; UINTuiThreadId = 0; hThread = (HANDLE) _beginthreadex(0,0,ThreadClientProc,this,CREATE_SUSPENDED,&uiThreadId); if( NULL != hThread )ResumeThread(hThread); elseFatalError("创建Client线程失败");}方法三MFC环境DWORD WINAPI ThreadMyFunc(LPVOID pvoid){......return 0;}OnOK(){HANDLE hThread;DWORD dwThreadId; hThread = CreateThread(NULL, 0, ThreadMyFunc, NULL, 0, &dwThreadId); CloseHandle(hThread);}////////////////////////////////////////////////////////////// 调用DLL中函数的方法//////////////////////////////////////////////////////////////typedef void (WINAPI *lpGetSMSContent)(char* mobile,char* senderaddi, char* recvaddi,char* ct,char* sd,int* flag);int (WINAPI *lpReceiveSMS)(char*,lpGetSMSContent);//声明函数OnOK(){HINSTANCE hd;FARPROC lpFarProc;hd = LoadLibrary ("EUCPCommsingle.dll" ) ;lpFarProc =GetProcAddress(hd, "ReceiveSMS" ); lpReceiveSMS = (int(__stdcall *)(char*,lpGetSMSContent))lpFarProc; //转换指针lpReceiveSMS("0SDK-EBD-0240-JFQQR",getSMSContent);//调用该函数}