我嘗試傳遞一個結構作爲參數。AfxBeginThread中的參數結構
全球結構:
struct ThreadParams
{
HWND window;
LIB::ServiceContainer* mrt;
};
在主線程:
ThreadParams threadparams;
threadparams.window = (HWND) GetSafeHwnd();
threadparams.mrt = m_rt;
CWinThread* pthread1;
pthread1 = (CWinThread*) AfxBeginThread(Thread1,(LPVOID)&threadparams,THREAD_PRIORITY_NORMAL,0,0,0);
類外:
UINT Thread1(LPVOID lp)
{
ThreadParams* threadparams = (ThreadParams*) lp;
HWND hmainWindow = threadparams->window;
LIB::ServiceContainer* m_rt = threadparams->mrt;
}
雖然它編譯罰款,我會在運行時錯誤(這是一個意外的錯誤),我想我搞砸了指針m_rt。你看到任何明顯的錯誤?
你能展示更多的調用代碼嗎?如果threadparams在線程運行時被破壞,那麼該線程有一個懸掛指針。 – hmjd 2012-03-20 14:52:47