Visual C++ Express EditionでwxWidgetsを使ってみる
Visual C++ Express Editionでネイティブアプリケーションを作成する際、Windows Platform SDKと共に利用します。 但し、MFCが利用できないため、GUIを作成するには Win32API を直接利用するか、または他のGUIライブラリを利用することが考えられます。 ここでは、GUIライブラリとしてwxWidgetsを利用してみます。
wxWidgetsのインストール
wxWidgetsの入手
wxWidgets のホームページの ダウンロードページから wxMSW をクリックし wxMSW-2.6.3-Setup-1.exe をダウンロードします。
インストール
ダウンロードした wxMSW-2.6.3-Setup-1.exe を実行します。 Setup ダイアログが表示されますので[はい]をクリックします。 Setup ウイザードが開始されます。
セットアップウイザードが表示されますので[Next>]をクリックします。
ライセンス同意事項が表示されますので、内容を確認し、同意する場合は、[I accept the agreement]にチェックをし、[Next>]をクリックします。
wxWidgets に関する情報が表示されます。[Next>]をクリックします。
インストール先のフォルダを指定し、[Next>]をクリックします。
Startメニューのフォルダ名を指定します。よろしければ、そのまま[Next>]をクリックします。
[Install]をクリックするとインストールが開始されます。
wxWidgets のインストールに関する情報が表示されます。[Next>]をクリックします。
インストールが完了しました。[Finish]をクリックすします。
ライブラリの作成
Visual C++ Express Edition 上でのビルド
上記インストールをしただけでは、ライブラリは存在しません。 コンパイルしてライブラリを作成する必要があります。 wxWidgetsには各コンパイラにあわせたビルド環境が用意されていますので、 Visual C++ Express Edition (+ Windows Platform SDK)を利用してビルドします。
Visual C++ Express Edition を起動します。
[ファイル]-[開く]-[プロジェクト/ソリューション]を選択します。
wxWidgetsのインストールフォルダの build\msw\wx.dsw を 開きます。
以下のようなダイアログが表示されますが、[すべてはい]をクリックします。
右のソリューションエクスプローラに ソリューション'xw'(18プロジェクト)が表示されます。
ソリューション'xw'(18プロジェクト)をクリックするし wx ソリューションのプロパティを表示します。
スタートアッププロジェクトがwxregexになっており、デフォルトではアクティブ構成が Debug|Win32 となっています。 アクティブ構成を変更することにより、必要なライブラリ構成を選択します。
ソリューション'xw'(18プロジェクト)を右クリックで[ソリューションのビルド]を選択するとビルドが開始されます。 警告は出力されますが、数分後に以下のように完了します。
[Debug|Win32]の構成のスタティックライブラリが作成されました。 必要に応じてアクティブ構成を[Release|Win32],[Unicode Debug|Win32], [Unicode Release|Win32] に変更して上記の[ソリューションのビルド]を実行します。 ライブラリはそれぞれ別名で作成されますので予め作成しておけばよいです。 作成したライブラリはインストールフォルダのlib\vc_libに作成されます。
サンプルアプリケーションのビルド
wxWidgets にはサンプルアプリケーションが含まれています。
Visual C++ Express Edition インストールフォルダの samples\sample.dsw を開き、 ソリューションをビルドすることでサンプルアプリケーションがビルドできます。
wxWidgetsアプリケーションの作成
プロジェクトの作成
では、Visual C++ Express Edition で wxWidgets を使用した簡単なアプリケーションを作成してみましょう。
[ファイル]-[新規作成]-[プロジェクト]から[新しいプロジェクト]ウインドウを表示します。
プロジェクトの種類ツリーから[Visual C++]-[Win32] をクリックします。
Visual Studio にインストールされたテンプレートより[Win32 コンソール アプリケーション] をクリックし、 プロジェクト名に名前を入力し、[OK]ボタンをクリックします。
[Win32 アプリケーション ウィザード]ウインドウが表示されます。
[次へ>]をクリックします。
アプリケーションの種類に[Windows アプリケーション]を選択し、 追加オプションに[空のプロジェクト]をチェックし、[完了]をクリックします。
プロジェクトが生成されます。
ソースの作成
ソースファイルを右クリックで[追加]-[新しい項目]を選択し、 新しい項目の追加ウインドウで[C++ファイル(cpp)]を選択し、ファイル名を入力し、[追加]をクリックします。
エディタで以下のように wxWidgetsを利用してフレームを表示するコードを記述し、保存します。
#include "wx/wx.h" class Sample : public wxApp { public: virtual bool OnInit(); }; IMPLEMENT_APP(Sample) bool Sample::OnInit() { wxFrame *frame = new wxFrame(NULL, -1, wxT("Sample"), wxPoint(-1, -1), wxSize(600, 400)); frame->Show(TRUE); SetTopWindow(frame); return TRUE; }
ここではコード内容の説明については記載しません。
プロジェクトの設定
wxWidgets のインクルードファイルやライブラリを参照するように設定します。
ソリューションエクスプローラのプロジェクトを右クリックし[プロパティ]を選択します。
プロパティページが表示されます。[構成プロパティ]-[全般]をクリックします。
[プロジェクトの規定値]の[文字セット]を[設定なし]にする。
[構成プロパティ]-[C/C++]-[全般]をクリックします。 追加のインクルードディレクトリに[$(WXWIN)\lib\vc_lib\mswd,$(WXWIN)\include]を追加します。
$(WXWIN)は、wxWidgetsインストール時に設定されるインストールディレクトリの環境変数です。
[構成プロパティ]-[リンカ]-[全般]をクリックします。 追加のライブラリディレクトリに[$(WXWIN)\lib\vc_lib]を追加します。
[構成プロパティ]-[リンカ]-[入力]をクリックします。 追加の依存ファイルに[wxmsw26d_core.lib wxbase26d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib odbc32.lib]を追加します。
[OK]をクリックします。
注意)本設定は 構成が Debug でビルドする場合の設定です。例えば Releaseの時は、 追加のインクルードディレクトリは[$(WXWIN)\lib\vc_lib\msw,$(WXWIN)\include]に 追加の依存ファイルは[wxmsw26_core.lib wxbase26.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib odbc32.lib]になります。
その他の構成の設定は wxWidgetsのサンプルアプリケーションの各プロジェクトのプロパティを参照して設定してください。
ビルドと実行
ソリューションをビルドし、デバック開始で実行すると以下のようなウインドウが表示されます。