요건 헤더 파일이고
이건 소스파일인데
저기서 CreateThread(NULL,0,ThreadFunc, this, 0, &dwThreadID); 에서 ThreadFunc가 형식이 안맞는다길래 찾아보니까
static 함수로 쓰거나 클래스 맴버 함수 아닌 놈을 쓰라더라구 그래서 static을 붙여주거나 클래스 밖으로 빼주니까 되던데
왜 CreateThread에서 클래스의 맴버 함수를 쓰면 안되는거임?
4개의 댓글
무분별한 사용은 차단될 수 있습니다.
재끼
형이쓰는건 윈도우에서 제공하는 라이브러리임//process.h
그 라이브러리는 c용도로 작성된거라 c++에서 쓸땐 전역함수(static)를 넣어야 돌아감
non static 함수 넣고싶으면 c++표준 쓰레드 쓰면됨//thread
프갤갤갤갤
아하 C++ 기능을 C에 넣으려 했던 거구나 ㄳㄳ
하테나
클래스 멤버 함수는 숨겨진 this 매게변수라는게 있음
우리가 멤버함수를 선언, 정의할때는 따로 안 쓰지만 컴파일 단계에서 컴파일러가 자동으로 추가하는 부분인데
이 this가 추가됨으로 인해서 CreateThread에서 요구하는 함수포인터의 형과 불일치하게 되기 때문.
프갤갤갤갤
ㅇㅎ ㄳㄳ