[問題] thread呼叫不能class?
這個程式有個class是繼承自CDialog 大概像下面這樣
其中裡面有許多class 我不逐一寫出
class CVideoDlg : public CDialog
{
...
public:
afx_msg void aaa();
public:
static UINT MyThreadFun(LPVOID LParam);
...
}
其中有宣告一個thread(AfxBeginThread) 及許多副程式
我想用在啟動thread時去呼叫副程式
正常的AfxBeginThread使用的寫法是
UINT CVideoDlg::MyThreadFun(LPVOID LParam)
{
MyThreadInfo *pInfo1=(MyThreadInfo*) LParam;
...(想要做的事)(程式就加在這)
}
但因為我的程式需求
必需要在thread裡面呼叫class 因此我在thread裡面呼叫aaa()這個class
UINT CVideoDlg::MyThreadFun(LPVOID LParam)
{
MyThreadInfo *pInfo1=(MyThreadInfo*) LParam;
bbb();
CVideoDlg::aaa();
}
但在編譯時出現以下這個訊息
"error C2352: 'CVideoDlg::aaa' : 非靜態成員函式的呼叫不合法"
問題是 bbb() (bbb()是global副程式)可以編譯通過且正常呼叫
但aaa()卻不能通過編譯
想請問大家有解決方法嗎 謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.184.218
※ 編輯: hopesong 來自: 140.122.184.218 (09/17 01:18)
※ 編輯: hopesong 來自: 140.122.184.218 (09/17 01:19)
推
09/17 01:36, , 1F
09/17 01:36, 1F
→
09/17 01:39, , 2F
09/17 01:39, 2F
→
09/17 01:40, , 3F
09/17 01:40, 3F
→
09/17 01:43, , 4F
09/17 01:43, 4F
→
09/17 01:43, , 5F
09/17 01:43, 5F
→
09/17 01:45, , 6F
09/17 01:45, 6F
→
09/17 01:47, , 7F
09/17 01:47, 7F
→
09/17 01:47, , 8F
09/17 01:47, 8F
→
09/17 01:48, , 9F
09/17 01:48, 9F
→
09/17 01:49, , 10F
09/17 01:49, 10F
→
09/17 01:56, , 11F
09/17 01:56, 11F
→
09/17 02:03, , 12F
09/17 02:03, 12F
→
09/17 02:05, , 13F
09/17 02:05, 13F
→
09/17 02:06, , 14F
09/17 02:06, 14F
→
09/17 02:06, , 15F
09/17 02:06, 15F
→
09/17 02:07, , 16F
09/17 02:07, 16F
→
09/17 02:07, , 17F
09/17 02:07, 17F
→
09/17 02:22, , 18F
09/17 02:22, 18F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章