グローバル関数内での呼び出し方

[戻る]
muma 2002/12/16(月) 11:02:39
ダイアログボックスのMFCで作成しています。
ダイアログクラスの処理の中で、メッセージボックス関数を実行すると
普通に実行されるのですが、実行場所をグローバル関数の中に持っていくと
エラーが起こってしまいます。
どうすればグローバル関数の中でメッセージボックスを表示できるのでしょうか?

<例>
@Onbottan関数の中でメッセージボックスを呼び出す。(これはOK)
AOnbottan関数の中でグローバル関数Aを呼び出す。
グローバル関数Aの中にはメッセージボックスを呼び出す記述がある(これは駄目)

2002/12/16(月) 11:06:20
どのようにメッセージボックスを呼び出したのでしょうか?
MFC をお使いなのでしたら MessageBox()、::MessageBox()、AfxMessageBox() の
違いはお分かりでしょうか?

PAI 2002/12/16(月) 11:08:12
1.ここでいう『メッセージボックス関数』とは正確には何ですか?
2.ここでいう『エラーが起こってしまう』とは具体的はどうなるのですか?

PAI 2002/12/16(月) 11:08:38
あ、かぶっちゃった、すみません。

muma 2002/12/16(月) 11:34:18
MessageBoxです。
違いは分かりません。

いぷ 2002/12/16(月) 12:02:31
エラーってのはコンパイルエラーなんですかね?
MessageBoxとだけ書いた場合、書いた場所によって下記のどちらかが呼ばれます。

CWnd::MessageBox - CWndのメンバ関数
::MessageBox - WindowsAPI

詳細はMSDNで調べてください。

muma 2002/12/16(月) 14:18:47
[[解決]]
MessageBox("asdf")

error C2660: 'MessageBoxA'
というコンパイルエラーが発生します。

/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*

どうも引数の数がヘルプと見比べてみたところ異なっていました。
AfxMessageBoxと混同していたようです。

ありがとうございました。

古いスレッドには追加発言できません。