다음과 같은 함수형을 선언합니다.
컴파일 잘 됩니다.
typedef int __stdcall (*TFunction)(int ParamCode1, long ParamCode2);
이제 VC++에서도 해 봅시다.
컴파일해보면 당근히 될거라는 기대는 지평선 넘어로 사라져 버립니다
VC++은 고집이 매우 셉니다.
비유를 맞춰주어야 합니다.
typedef int (__stdcall *TFunction)(int ParamCode1, long ParamCode2);
이렇게 바꾸고 컴파일 하니 잘됩니다.
이렇게 바꾸고 빌더에서도 컴파일 해보니 역시 잘됩니다.
VC++쪽 에러 메시지가 함수호출규약의 위치가 틀렸다고 친절이 나오지 않기 때문에
왜 안되는지 개발자는 헷갈리게 됩니다.
그냥 눈으로 한번 봐두기만 해도 VC++과 BC++을 오갈때 덜 헷갈립니다.
이건 팁도 아니고 트럭도 아니고... ㅋㅋ;
|