[[山内の授業補完のページ/Windowsアプリ]]

さて、もう一歩進めてMS Windowsらしく使いましょう。「コマンドプロンプト」から
ファイル名を叩いて実行するなんて、MS Windowsらしくないですね。最後はアイコンを
ダブルクリックすると起動、とかいうのが、それらしいでしょう。

それと同じ事をするのに、「エクスプローラ」上でhello.exeをダブルクリックして
起動してみます。「スタート」を右クリックするとポップアップウィンドウに
「エクスプローラ」がありますから、それをクリックします。この中から
hello.exeの置いてあるフォルダ、前の例ではC:\cygwin\home\yamanouc\testwin32api
へ移動して、ファイルhello.exeをダブルクリックします。

どうでしょうか?
#ref(helloworldscreen.jpg,,right,around);
大きな黒いウィンドウがありますね。これは、Cygwinで使うときのコンソールの
名残だと思います。我々はコンソールとのやり取りをすべてMS Windowsスタイルに
したい(MS Windowsで見慣れたウィンドウを出したい)と思っているのですから、
この黒いウィンドウは邪魔です。

それを取り除くにはどうするか? コンパイルのときにもう1つフラッグを
追加します。

 gcc -o hello.exe -mno-cygwin -Wl,--subsystem,windows hello.c

では早速Cygwinコンソールで
では早速Cygwinコンソールで、この通りに試してみましょう。どうですか?
今度は黒いコンソールが出なくて、Win32 APIのメッセージボックスだけが
出たと思います。

フラッグは、-Wl,--subsystem,windows です。このフレーズの間にスペース
があってはいけません。またコンマはこのフレーズの中の区切りです。
約束ですので、この通り書いてください。その他のフラッグについては、
Cygwinのコンソールでmanコマンドを使って

 man gcc

とすると、かなり下のほうに説明があります。私の環境では

  -Wl,option
      Pass option as an option to the linker.  If option contains commas,
      it is split into multiple options at the commas.

と書いてありました。

これで、Cygwinを使って、Win32 APIを使うプログラムをコンパイルすることが
できるようになりました。(実はまだ完全ではないのですが)

では、次にWin32 APIをもう少し見てみましょう。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS