-1

ここでチュートリアルを見てきました: http://msdn.microsoft.com/en-us/library/bb384843.aspxですが、ある点で本当に混乱しています。

MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}

return (int) msg.wParam;

彼らがそこに戻って何をしているのか私にはわかりません。return は1つの値でのみ機能することを知っています。なぜ2つのものがあるのですか?私は他のチュートリアルを見てきましたが、それらはすべて使用しているようですreturn msg.wParam;

4

3 に答える 3

3

の値をmsg.wParamint にキャストしています。関数宣言でわかるように:

int WINAPI WinMain(HINSTANCE hInstance,
               HINSTANCE hPrevInstance,
               LPSTR lpCmdLine,
               int nCmdShow)

戻り値の型はintです。プロパティのタイプが正確にはわかりませんがwParam、おそらく ではないためint、明示的に int にキャストする必要があります。そうしないと、コンパイルされません。

于 2012-04-13T19:25:52.337 に答える
0

なぜ2つのことがあるのですか

2つのことはありません。に変換された(タイプ が)変数のwParamフィールドだけがあります。msgMSGstructint

于 2012-04-13T19:32:27.080 に答える
0

そのコードは、おそらく を返す関数の一部ですintmsg.wParamに暗黙的にキャストできないため、int明示的なキャストが必要です。基本的には次と同等です。

int ret = (int)msg.wParam;
return ret;
于 2012-04-13T19:28:46.813 に答える