作者newdominic (隨興至上)
站內C_and_CPP
標題[問題] 在新的執行緒中呼叫物件的成員函式
時間Tue Jul 14 23:21:10 2009
小弟最近在練multithread程式遇到一個問題
之前用C寫的時候
呼叫CreateThread()只要把函數名稱當成參數丟進去就好(應該沒錯吧?XD)
現在想改用C++寫
class Test {
void A();
void B();
};
當呼叫A()時
我希望A()裡面呼叫CreateThread()去做B()
但如果參數直接丟B 會跑出
函式呼叫遺漏引數清單,請用 '&Test::B' 建立成員的指標
可是當我照他說的把
B 改成
&Test::B 後
又會跑出
'&' : 界限成員函式運算式的作業不合法
想請教板上的高手 這個問題該怎麼解決
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.203.228
→ james732:最簡單的方法 把B宣告為static member function 07/14 23:36
→ newdominic:照j大的方式改過以後 現在錯誤訊息變成 07/14 23:59
→ newdominic:無法將參數 3 從 'void (__cdecl *)(char *)' 轉換成 07/14 23:59
→ newdominic:'LPTHREAD_START_ROUTINE' 範圍中沒有符合目標類型的 07/14 23:59
→ newdominic:函式 (使用此名稱) 07/14 23:59
→ newdominic:B的傳入參數改成LPVOID lpParam就解決了 感謝! 07/15 10:24