error C2440: ‘static_cast’ : cannot convert from ‘void (__thiscall CWMCALOADERDlg::* )(WPARAM,LPARAM)’ to ‘LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)’
MSDN은 안보이는데… 관련 에러에 대한 다른 포스팅들
BEGIN_MESSAGE_MAP(CWMCALOADERDlg, CDialog) //{{AFX_MSG_MAP(CWMCALOADERDlg) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_CONNECT, OnConnect) ON_BN_CLICKED(IDC_DISCONNECT, OnDisconnect) ON_BN_CLICKED(IDC_BALANCE, OnBalance) ON_BN_CLICKED(IDC_BUTTON_CURRENT, OnButtonCurrent) ON_BN_CLICKED(IDC_BUTTON_CLEAR, OnButtonClear) ON_BN_CLICKED(IDC_ORDER, OnButtonOrder) //}}AFX_MSG_MAP ON_MESSAGE(CA_WMCAEVENT, OnWmcaEvent)//****//에러가 발생한 위치 END_MESSAGE_MAP() ////////////////////////////////// //void이던 리턴값을 LRESULT로 바꿔주고... LRESULT CWMCALOADERDlg::OnWmcaEvent(WPARAM dwMessageType, LPARAM lParam) { switch(dwMessageType) { case CA_CONNECTED: //로그인 성공 OnWmConnected( (LOGINBLOCK*)lParam ); break; case CA_DISCONNECTED: //접속 끊김 OnWmDisconnected(); break; case CA_SOCKETERROR: //통신 오류 발생 OnWmSocketerror( (int)lParam ); break; case CA_RECEIVEDATA: //서비스 응답 수신(TR) OnWmReceivedata( (OUTDATABLOCK*)lParam ); break; case CA_RECEIVESISE: //실시간 데이터 수신(BC) OnWmReceivesise( (OUTDATABLOCK*)lParam ); break; case CA_RECEIVEMESSAGE: //상태 메시지 수신 (입력값이 잘못되었을 경우 문자열형태로 설명이 수신됨) OnWmReceivemessage( (OUTDATABLOCK*)lParam ); break; case CA_RECEIVECOMPLETE: //서비스 처리 완료 OnWmReceivecomplete( (OUTDATABLOCK*)lParam ); break; case CA_RECEIVEERROR: //서비스 처리중 오류 발생 (입력값 오류등) OnWmReceiveerror( (OUTDATABLOCK*)lParam ); break; default: break; } return 0;//리턴값을 넣어주니까 통과.. }
비슷한 오류가 많은 것 같은데…
처리방법은 이런식으로 응용하면 될 듯 하다.
이번 경우에는 에러메세지가 void랑 LRESULT랑 처리를 못 하겠다는 뭐 그런거니까…
void를 LRESULT형태로 바꿔준것..