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

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

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

どうでしょうか?

right,around

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

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

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

では早速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をもう少し見てみましょう。


添付ファイル: filehelloworldscreen.jpg 373件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-07-22 (日) 12:22:19 (4445d)