我尝试传递一个结构作为参数。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