1. thread 생성시 다음 2가지 방법으로 생성 할 수 있다.
- 전역 함수일 경우
UINT ThreadProc( LPVOID pParam )
{
}
- static 멤버일 경우
class Test
{
public:
static UINT ThreadProc( LPVOID pParam ) ;
} ;
UINT Test::ThreadProc( LPVOID pParam )
{
}
2. C2440 error 발생시
호출 규칙의 정의
__cdecl : C 스타일
__stdcall : C++ 스타일
Thread 생성시 CreateThread나,AfxBeginThread함수를 쓰는데
이 때, 쓰레드 함수가 인자로 들어간다.
함수도 주소값이 있기때문에 이를 위해 보통 타입캐스팅을 해서 함수가 가리키고 있는
주소값을 던져주기도 한다.
그런 경우를 위해 함수 포인터를 파라미터로 던져줄때 다음과 같이 타입캐스팅을 해야한다.
CWinThread* pThread = ::AfxBeginThread((void*)Func, this, THREAD_PRIORITY_NORMAL);
--> CWinThread* pThread = ::AfxBeginThread((AFX_THREADPROC)Func, (LPVOID)this, THREAD_PRIORITY_NORMAL);
'Programming > MFC' 카테고리의 다른 글
스레드 우선 순위 (0) | 2006.03.07 |
---|---|
콘솔창 함께 띄우기 (0) | 2006.02.09 |
파생클래스에 관한것과 클래스구성원에관한포인터 (0) | 2006.02.09 |
Debug "fd fd fd fd" 메모리 번지 검사 (0) | 2006.02.08 |
마우스의 사용범위 (0) | 2006.02.07 |