구조체를 매개 변수로 전달하려고합니다.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