1
프로그램을 C에서 C++로 변환하고 있습니다. 컴파일러에서 기본적으로 __fastcall 호출 규칙을 사용하도록 설정했습니다. 나는 불만 모든 종류의 형성 얻을 ++C에서 C++로 변환하는 WNDPROC 선언 문제가 발생했습니다.
wndclass.lpfnWndProc = graph_window_handler;
이 모든 컴파일 C.에서 그러나 C에서 근무 :
INT32 PASCAL graph_window_handler(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
를 나중에 내가 가진 다음과 같이
나는 선언 라인을 가지고하는 데 사용 두 번째 코드 줄에 대한 컴파일러. 원래 선언문을 WNDPROC가 포함 된 것으로 변경해야 할 것 같아요. 아마도 _cdecl을 던져 넣었을 것입니다. INT32가 있든 없든? 그러나 내가 시도하는 모든 변이가 아직도 불평하게하는 것처럼 보인다. 두 번째 라인이 불평하지 않도록 선언문을 어떻게해야합니까? - 건배.LRESULT CALLBACK graph_window_handler(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
을 그리고 당신은 WinUser.h
를 확인할 수 있습니다 경우 다음과 같이 WNDPROC
이 형식 정의 것을 볼 수 있습니다 :
감사합니다 . "LRESULT CALLBACK"이 "WNDPROC"와 동등한/캐스트 가능한 이유는 모르겠지만 그 일을 그렇게 잘 할 수는 있습니다. – Mick
추가 정보를 편집 해 주셔서 감사합니다. :-) – Mick