게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
MFC 멀티스레딩 액세스바이올레이션나요 ㅠㅠ
게시물ID : computer_22665짧은주소 복사하기
작성자 : 빵집상인
추천 : 0
조회수 : 788회
댓글수 : 0개
등록시간 : 2011/11/04 21:21:39
일단 버튼의 OnBnClickedOk에서 CWinThread* pThread = AfxBeginThread(ThreadDownload, NULL); 이렇게 스레드를 만들었습니다.
 그리고 나서 스레드 함수에서

CDownBooRuDlg* pMain = (CDownBooRuDlg*)AfxGetMainWnd();

이렇게 하고 pMain->멤버변수
이런 식으로 코딩을 하였습니다. 그래서 멤버변수를 엑세스 하는 순간 액세스 바이올레이션이 멋지게 뜨네요.

그리고 스레드 함수는 전역함수구요.


스레드 함수에서 일반 멤버변수를 호출시, 무조건 액세스 바이올레이션이 뜨는것인가요?;;

참고로 int형의 멤버변수는 잘 참조할 수 있지만

CString이나 멤버함수는 호출과 동시에 Access Violation이 뜹니다.

atlimpstr.h

int GetLength() const throw()
{
return( GetData()->nDataLength );
} //CString 참조시 위 함수에서
IAtlStringMgr* GetManager() const throw()
{
IAtlStringMgr* pStringMgr = GetData()->pStringMgr;
return pStringMgr ? pStringMgr->Clone() : NULL;
}//UpdateData 호출시
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호