啓動線程方法一 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函數調用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.