VS 2003이나 VS2005에서 만든 VC++ MFC 프로젝트를 VS2008로 업그레이드 했을 때 아래와 같은 에러가 발생할 수 있습니다.

error C2440: 'static_cast' : cannot convert from 'UINT (__thiscall CXXX::* )(CPoint)' to 'LRESULT (__thiscall CWnd::* )(CPoint)'

 

이것은 VS2005에서는 ON_WM_NCHITTEST 메시의 함수로

afx_msg UINT OnNcHitTest(CPoint point);

로 정의 되지만 VS2008에서는

afx_msg LRESULT OnNcHitTest(CPoint point);

로 정의 되기 때문에 발생하는 문제입니다.

 

 

해결 방법

함수의 반환 타입을 UINT에서 LRESULT로 바꾸면 해결됩니다.

 

by 흥배 2011. 2. 10. 09:00