error C2664: 'CreateThread' : cannot convert parameter 3 from 'void (int)' to 'unsigned long (__stdcall *)(void *)'
2046 단어 parameter
LPTHREAD_START_ROUTINE 함수 포인터
함수를 가리키며, 이 함수는 숙주에게 어떤 라인이 실행되기 시작했음을 알립니다.
.NET Framework 4 릴리즈에서는 이 함수 포인터가 사용되지 않습니다. typedef DWORD (__stdcall *LPTHREAD_START_ROUTINE) (
[in] LPVOID lpThreadParameter
);
매개 변수
lpThreadParameter
[in] 이미 실행된 코드를 가리키는 바늘.
비고
LPTHREAD_START_ROUTINE이 가리키는 함수는 리셋 함수이며, 응용 프로그램을 불러오는 컴파일러에 의해 이루어져야 한다.
PS:
콜백 함수가 일반 구성원 함수인 경우 오류가 발생합니다.
error C2440: 'type cast' : cannot convert from '' to 'unsigned long (__stdcall *)(void *)'
정적 구성원 함수로 성명해야 합니다.구성원 함수를 정적으로 설명하면 라인 함수로서의 문제를 해결할 수 있지만, 이것은 새로운 문제를 가져왔다. 그것은 바로 static 구성원 함수가static 구성원에게만 접근할 수 있다는 것이다.이 문제를 해결하는 방법 중 하나는 클래스 정적 구성원 함수 (스레드 함수) 를 호출할 때,this 바늘을 매개 변수로 전송하고, 스레드 함수에서 강제 형식 변환으로this를 이 클래스를 가리키는 바늘로 변환하여, 이 바늘을 통해 비정적 구성원에 접근하는 것이다.
루틴 함수는 클래스의 실례에 독립되어 존재하는데 그의 생명기는 클래스의 생명기가 아니라 전체 프로세스이다.비정상적인 구성원 함수를 라인 함수로 사용할 수 있다면, 이 종류의 실례가 정의되지 않았다면, 라인 함수를 호출할 수 없었을 것이다
typedef DWORD (__stdcall *LPTHREAD_START_ROUTINE) (
[in] LPVOID lpThreadParameter
);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Python]Function Parameters(2)매개변수 이름 앞에 *을 붙이면 입력값을 전부 모아서 튜플로 만들어 주기 때문에 여러 개의 입력값을 받을 수 있다. 위와 같이 함수를 호출하면 num1, num2에는 각각 1과 6이 전달되고, *args라는 Para...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.