728x90
반응형
c2440: 'static_cast':'void(_thiscall CDlgtest::*)(WPRAM,LPARAM)'에서 LRESULT(_thiscall CWnd::*)(WPRAM,LPARAM)'변환할수 없습니다.
이런 에러가 뜹니다.
흔한 경우는 아닌데 저 같은 경우는 2010..13 시절에 쓰여진 학습교재 코드를 빌딩하다 저런 메세지를 봤습니다.
ON_MESSAGE 함수는 아무런 문제가 없어보이는데 이런 문제가 생긴다면
아래와 같이 해보십시요
ON_MESSAGE(WM_MESSAGE, OnReceivemessage)
이것을
ON_MESSAGE(WM_MESSAGE, (LRESULT(AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM))OnReceivemessage)
요런식으로 수정
원래 ON_MESSAGE의 정의.
728x90
#define ON_MESSAGE(message, memberFxn) \
{ message, 0, 0, 0, AfxSig_lwl, \
(AFX_PMSG)(AFX_PMSGW) \
(static_cast< LRESULT (AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM) > \
(memberFxn)) },
크게 기대안하고 수정해봤는데 바로 빌드 되네요
사실 이렇게 바꿔서 돌아가는 이유를 아는게 제일 좋은데
뭐 에러가 한두개도 아니고 매번 수정하다보면 시간에 쫒기죠
일단 참조
728x90
반응형
'프로그래밍학습 > MFC' 카테고리의 다른 글
error C2143: 구문 오류 : ';'이(가) '*' 앞에 없습니다. (0) | 2021.05.11 |
---|---|
파일 매핑 예제 MMF(IPC) (1) | 2021.04.20 |
[MFC]배열을 포인터로 전달하기- c++ (0) | 2021.03.20 |
[MFC]컨트롤 클릭 이벤트 (0) | 2021.03.11 |
MFC 프로그래밍 책 고르기 (0) | 2021.03.11 |
댓글