LoginSignup
1
1

More than 5 years have passed since last update.

c++ builder XE4, 10.2 Tokyo > Window Message > E2227 __fastcall TForm1::funcAfterOnShow()の呼び出しに余分なパラメータがある

Last updated at Posted at 2015-09-04
動作確認
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が「余分なパラメータ」という認識だったのだろう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1