2017-03-28 28 views
0

すべて、私はWinMainに関する質問があります。 VS2010では、_tWinMainの戻り値は "(int)msg.wParam"です。なぜwParamを返すのかわかりません。WinMainの戻り値

wParamとは何ですか?私はそれを "return 0"に変更することはできますか?

+0

http://stackoverflow.com/questions/33394583/trying-to-return-value-from-message-c-mfc –

+4

を言うよりも、これ以上の意味は、おそらくもありませんWM_QUITメッセージが処理されたときにループを終了する標準Windowsメッセージループのコード。その場合、 'msg.wParam'にはメッセージに渡されたExit値があり、WinMainはそれを返すことになっています。 –

+1

これは、VSが自動的に作成するテンプレートプロジェクトです。あなたは好きなものに変更することができます。 –

答えて

1

WM_QUITGetMessageで処理すると、メッセージループを終了します。 WM_QUITのドキュメントは、これを言う:

wParamに

PostQuitMessage関数で与えられた終了コード。

これはWinMainから返される値です。したがって、この値は、終了コードとしてPostQuitMessageに渡された値にすぎません。

必要に応じてゼロを返すようにコードを変更することができます。しかし、正常終了時にはPostQuitMessageに0が渡されるので、そのような変更を行うことで得られる余裕はほとんどありません。

+0

ありがとうございます。 – JohnStupidSheep

0

WinMainから返された値はそのままExitProcess関数に渡されます。 c/C++ランタイムまたはExitProcessはそれ自体解釈せずに使用しますuExitCode - 絶対値を使用することができます(STILL_ACTIVEを返しても問題ありませんが、エラーではない場合もあります) - これはアプリケーションであり、どのコードを返す必要がありますか?このコードでは、GetExitCodeProcessという別のアプリケーションを取得できます。何らかの情報が含まれているアプリケーションからのuExitCodeの場合は、それを解釈します(通常これがエラーコードとして使用され、0はエラー)。しかしほとんどの場合uExitCodeあなたのリターンコードに興味のある人はいないでしょう。可能性ももちろんmsg.wParamを返すが、0を返すか、__LINE__

+0

ありがとうございます。 – JohnStupidSheep