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);//调用该函数}