動作確認
C++ Builder XE4
Rad Studio 10.2 Tokyo Update 2 (追記: 2017/12/26)
Window messageを使おうと思って実装したところ、以下のエラーに遭遇した。
E2227 __fastcall TForm1::funcAfterOnShow()の呼び出しに余分なパラメータがある
Unit1.h
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_SHOWED, TMessage, funcAfterOnShow);
END_MESSAGE_MAP(TForm)
Unit1.cpp
void __fastcall TForm1::funcAfterOnShow(void)
{
ShowMessage(L"test");
}
関数の定義を以下のようにすることでエラーはでなくなった。
Unit1.cpp
void __fastcall TForm1::funcAfterOnShow(TMessage msg)
{
ShowMessage(L"test");
}
E2227の「余分なパラメータがある」というエラーメッセージで混乱したが、実際にはfuncAfterOnShowの引数を(TMessage msg)
とすべきところを(void)
という引数にしていたのが問題だった。
(void)
で定義されたfuncAfterOnShow()からすると、確かにMESSAGE_HANDLER
の引数2つめのTMessage
が「余分なパラメータ」という認識だったのだろう。