|
안녕하세요? 개박살입니다.
어디선가 많이본 이름이군요 --;
우선, Functions containing switch are not expanded inline 이라는 경고문이 나죠?
이건, 말뜻대로 inline 함수로는 넘 긴문장을 담고있다 라는 뜻이죠
그래서, 일반 함수로 처리한다라는 말입니다..
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_MYMESSAGE, TMessage, OnMyMessage)
END_MESSAGE_MAP(TForm)
이부분은, 헬프로 보면
#define BEGIN_MESSAGE_MAP virtual void __fastcall Dispatch(void *Message) .. 생략
매크로 함수임을 알수있답니다.
즉, 저런 문장을 만나면,,
virtual void __fastcall Dispatch(void *Message) {
switch( ((PMessage)Message)->Msg ) {
case WM_MYMESSAGE:
OnMyMessage(*((TMessage *)WM_MYMESSAGE));
break;
default:
TForm::Dispatch(Message);
break;
}
이런식으로 변환이 되죠
즉, 클래스안에서 바로쓸수있는 인라인 함수로는 넘길다라는 뜻이되겠쬬.
별로 상관없는 에러이지만.. 이 경고가 싫으시다면,,
헤더에
virtual void __fastcall Dispatch(void *Message);
를 걸고
나머지는 소스로 옮기면 되겠죠??
그대신 매크로같이 알기 쉬운 코딩을 포기하시고 ^^;
그럼 이해가 되셨기를....
이창환 님이 쓰신 글 :
: 제가 실수를 했군요.
:
: 그런데 TControl을 TForm으로 바꾸어도 경고가 나타납니다.
:
: 다시 한번 조언 부탁 드립니다.
|