WinMain関数について


 いまさらながら、WinMain関数について解説したいと思います。

 WinMain関数は、Windowsアプリケーションのエントリーポイント(始まり)で、コンソール(MS-DOS、コマンドプロンプト)の時のmain関数にあたります。
 main関数は、引数を二つとりますが(今度解説します)WinMain関数は前のサンプルどおり、4つの引数を持ちます。

WinMain関数
// Windowsプログラムは、WinMain関数から始まります。
int WINAPI WinMain(
    HINSTANCE hInstance,                // アプリケーションのインスタンスハンドル
    HINSTANCE hPrevInstance,            // 使う必要なし。16bit時代との互換を保つため
    LPSTR lpCmdLine,                    // コマンドライン引数
    int nCmdShow                        // ウィンドウの表示タイプ
);

  • hInstance
     最初のhInstanceは、前も説明したとおり、アプリケーションのインスタンスハンドルです。グローバル変数などに格納しておくと後々便利です。

  • hPrevInstance
     これは、16bit時代との互換を保つためのもので、まったく使いません。

  • lpCmdLine
     コンソール時代のコマンドラインと、ほぼ同じ役割をします。主にファイルアドレスがここに格納されるのですが、具体的にどんな風に使うのかというと、microsoft office等を使うとき、わざわざエクセルなどを開けてからファイルを読み込まなくても、エクセル形式のファイルをダブルクリックすればそれがエクセルに読み込まれるように、このコマンドラインは関連付ける作業パスです。

  • nCmdShow
     これは、ウィンドウの表示の方法です。ウィンドウを作成しないときでもダイアログボックスなどに有効なものです。

    また、下のショートカットのプロパティを見てください。

    ←この図を見てください。まぁデフォルトドライブがCではなくFなのは気の迷いです。多分。それはさておき、ショートカットは、アプリケーションに「ショートカットする」だけでなく、コマンドライン引数もあらかじめ決めることができるのです。
     具体的に言うと、コマンドライン引数は「作業フォルダ(ドラックアンドドロップで呼び出した場合は一時的にそれがここに入ります)」になります。「実行時の大きさ」がlpCmdShowにint型として格納されます。

     今回、コマンドラインについての説明は省略しますが、実行時の大きさについては解説します。

     この引数に値が入ったからといって、勝手にウィンドウの表示形式が変わるわけはありません。ウィンドウの表示形式を変えるには、前回説明を省略したShowWindow関数を使います。
     ShowWindow関数は引数を二つもちます。
     一つ目はウィンドウハンドル(ウィンドウを作成したときに帰ってくる値。Windowを作るU参照)。二つ目はどのようにするかです。具体的な定数もありますが、今はWinMain関数の四つ目の引数「nCmdShow」を使ってください。

      以上でWinMain関数です。今のところは(次からは)hInstanceくらいしか出番はなさそうです。


     まぁメモ帳などを作るときには必要な事項なので、覚えておいてください。
     (てかこのサイトでそこまで解説できるかわからないけど………)


    前章へ戻る 次章へ進む WindowsAPI編に戻る プログラミングINDEX   UpDate:2007/4/22   Level:☆☆
    このサイトの一部、または全部を無断で再添付もしくは再配布することは著作権法に違反します。(リンクフリーです)もし使いたいなら僕(アドレスbussorenre.thundrer@hotmail.co.jp)まで連絡ください。
    inserted by FC2 system