启动线程方法一 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() { HANDLE hThread; UINT uiThreadId = 0; hThread = (HANDLE) _beginthreadex(0,0,ThreadClientProc,this,CREATE_SUSPENDED,&uiThreadId); if( NULL != hThread ) ResumeThread(hThread); else FatalError("创建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);//调用该函数 }
windows中线程及dll函数调用
最新推荐文章于 2021-06-11 12:46:18 发布