1

WinMain()関数の最後に一般的に書かれているこのステートメントの意味を説明してください。

   return (int) msg.wParam;

コンソール アプリケーションをreturn 0;is it wrong for windows applications で終了することに慣れていますか?

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

4

3 に答える 3

3

GetMessage()ループはWM_QUIT、関数の呼び出し後に通常発行されるウィンドウ メッセージを受信した後に停止します。ウィンドウ メッセージはPostQuitMessage()、そのnExitCodeパラメーターをアプリケーション終了コードとして記述します。

関数を呼び出した人の意図を尊重したい場合は、PostQuitMessage()その値を main から返す必要があります。wParamこれは、 の最後の呼び出しから取得した を返すときに行っていることですGetMessage()

于 2011-12-21T22:06:23.500 に答える
2

WinMain()ドキュメント(http://msdn.microsoft.com/en-us/library/windows/desktop/ms633559.aspx )から:

メッセージを受信したら、メッセージループを終了しWM_QUITます。その時点で、アプリケーションを終了し、メッセージのパラメータWinMainで渡された値を返す必要があります。を呼び出した結果として受信された場合、の 値は関数のパラメーターの値です。WM_QUITwParamWM_QUITPostQuitMessagewParamPostQuitMessagenExitCode

于 2011-12-21T22:04:05.920 に答える
2

Google検索の最初のヒットから

WinMainは、アプリケーションを初期化し、そのメインウィンドウを表示し、アプリケーションの残りの実行の最上位の制御構造であるメッセージの取得と送信のループに入る必要があります。WM_QUITメッセージを受信したら、メッセージループを終了します。その時点で、WinMainはアプリケーションを終了し、WM_QUITメッセージのwParamパラメーターで渡された値を返す必要があります。PostQuitMessageを呼び出した結果としてWM_QUITを受信した場合、wParamの値はPostQuitMessage関数のnExitCodeパラメーターの値です。詳細については、メッセージループの作成を参照してください。

于 2011-12-21T22:05:20.363 に答える