一般來說,用靜態函式是可以了.
但是嘗試下用成員函式.呵呵.
h檔案
// cclientdlg 對話方塊
class cclientdlg : public cdialog
;
cpp檔案
//_beginthread 用,符合__cdecl call
union proc;
//_beginthreadex 用,符合__stdcall call
union proc1;
//開始按鈕
void cclientdlg::onbnclickedcnn()
struct sockaddr_in serv_addr;
serv_addr.sin_family=af_inet;
serv_addr.sin_port=htons(5000);
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); //inet_addr轉換為網路位元組序
if(connect(myclient,( struct sockaddr *)&serv_addr,sizeof(struct sockaddr))!=0)
_beginthread( cclientdlg::myproc, 0, null );
proc.memberproc = &cclientdlg::testproc;
//呼叫的時候,必須傳this指標.對於類成員,其實隱藏第乙個引數就是this指標.
_beginthread(proc.threadproc, 0, this);
proc1.memberproc = &cclientdlg::testproc1;
_beginthreadex(0,0,proc1.threadproc,this,0,0);
//函式也是乙個位址罷了,雖然有些時候編譯器不能轉換,但是本質是不變的,只是乙個int值,其實用彙編更容易實現.上面的union就是為了解決編譯器編譯出錯的.
}//成員 執行緒函式
unsigned int __stdcall cclientdlg::testproc1(void *)
void cclientdlg::testproc(void *)
類成員函式作為執行緒函式
include windows.h include class exampletask void exampletask taskmain lpvoid param void exampletask starttask int main int argc,char argv 出現編譯錯誤 error...
類成員函式作為執行緒函式
黙 座 類成員函式作為執行緒函式 2011 01 10 14 54 43 分類 windows 字型大小 訂閱 類成員函式不能作為執行緒函式 一般來說,c 的類成員函式不能作為執行緒函式。這是因為在類中定義的成員函式,編譯器會給其加 上this指標。請看下列程式 include windows.h ...
非靜態成員作為執行緒函式
關於this指標的傳遞問題總結 1 cdecl成員函式 通過ecx傳遞this指標 mov ecx,物件的位址 call 成員函式 2 stdcall成員函式 通過堆疊傳遞this指標 push 物件的位址 call 成員函式 用非靜態成員作為執行緒函式 原理分析 1.該執行緒的主函式為類的非靜態成...