C++(wxWidgets)のメモ - Masanoriのメモ帳

C++(wxWidgets)のメモ



おしらせ
C++ではなくPerlによるwxWidgets 開発については、Perl/Wxをご覧ください。

Visual C++ Express Edition(2008)でwxWidgetsで開発する

Visual C++ 2008 Express Editionで、wxWidgets2.8.9を利用して開発を開始する方法。
以下は、構成がDebugの場合の設定内容である。

  1. 新しいプロジェクトを作成する
    プロジェクトの種類は「Win32」。
    テンプレートは「Win32 コンソール アプリケーション」を選択する
  2. ”Win32 アプリケーション”ウィザード”が表示されたら、[次へ >]ボタンをクリックし、
    アプリケーションの種類は「Windows アプリケーション」を選択。
    追加のオプションで「空のプロジェクト」にチェックを入れて
    [完了]ボタンをクリックする。
  3. 作成したプロジェクトに、”新しい項目の追加”で、ソース ファイルを追加する。
    カテゴリは「C++」。テンプレートは「C++ ファイル(.cpp)」を選択して、
    ファイル名に、適当なファイル名を入力し、
    [追加]ボタンをクリックする。
  4. 作成したプロジェクトの プロパティ を開く。
    それぞれを以下のように変更する。
  5. 「構成プロパティ」-「全般」を開く。
    文字セットは「設定なし」を選択する。
  6. 「構成プロパティ」-「C++」-「全般」を開く。
    追加のインクルード ディレクトリに次を指定する。
    $(WXWIN)\lib\vc_lib\mswd,$(WXWIN)\include
  7. 「構成プロパティ」-「C++」-「コード生成」を開く。
    ランタイム ライブラリは「マルチスレッド デバッグ」を選択する。
  8. 「構成プロパティ」-「リンカ」-「全般」を開く。
    追加のライブラリ ディレクトリに次を指定する。
    $(WXWIN)\lib\vc_lib
  9. 「構成プロパティ」-「リンカ」-「入力」を開く。
    追加の依存 ファイルに次を指定する。
    wxmsw28d_core.lib wxbase28d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib odbc32.lib
    (>>注意!<<使用するクラスによっては、以上のファイルだけでは足りず、リンク時にエラーになる場合があるので、その場合は、必要なファイルを追加する。)

尚、構成をReleaseにする場合は、上記の設定のうち、以下をそれぞれ変更する。

以下、情報引用/参考元。

Tips

 wxWidgetsでコンソールアプリケーションを作成する

以下は、Visual C++ 2008 Express Editionで、wxWidgets2.8.9を利用して、
コンソールアプリケーションの開発を開始する方法である。

  1. 上の”Visual C++ Express Edition(2008)でwxWidgetsで開発する”と同じように設定を行う。
  2. プロジェクトのプロパティを開き、
    「構成プロパティ」-「リンカ」-「システム」を開く。
    サブシステムは「コンソール (/SUBSYSTEM:CONSOLE)」を選択する

main関数を以下のように追加する。

int main(int argc,char *argv[])
{
	return wxEntry( argc, argv );
}

引用/参考元:http://fancy-dolce.6.ql.bz/~fancy-dolce/home/?q=wxWidgets/Console

サンプルソースコード

#include "wx/wx.h"
#include <iostream>
class MyApp : public wxApp{
public:
    virtual bool OnInit();
};
IMPLEMENT_APP(MyApp)
int main(int argc,char *argv[])
{
	return wxEntry( argc, argv );
}
bool MyApp::OnInit(){
	std::cout<<"Hello world!";
	return TRUE;
}
注意
間違っている可能性もありますので、もし万が一使用される場合は、ご注意ください。

トラブルシュート

 文字列処理で日本語を含んでいる場合にうまく扱えない

wxWidgetsをUnicodeにすると解決する。
(wxWidgetsのsetup.hで、wxUSE_UNICODEを1にして、wxWidgetsを再度ビルドする)

 Visual C++環境で作成したプログラムを実行するとMSVCR90.dllが無いというエラーが出る

VC++のランタイムライブラリに依存しているプログラムを、
VC++のランタイムライブラリがインストールされていないPCで実行した場合に発生するエラー。
WxWidgetsで、ランタイムライブラリに依存しないようにプログラムを作成するには、
まず、wxWidgetsをビルドするときに、

    「構成プロパティ --> C/C++ --> コード生成 --> ランタイムライブラリ」

    の項目を

    「マルチスレッド (/MT)」または「マルチスレッド デバッグ (/MTd)」

    に変更

にしてビルドする必要がある。
引用元: http://d.hatena.ne.jp/hideAki/20080617/1213691492
http://ktm11.eng.shizuoka.ac.jp/cgi-bin/wiki/wiki.cgi?page=wxWidgets



スポンサード リンク



メニュー


未整理

Linux

プログラミングx

Android

サービス

製品

執筆中


筆者のサイト


スポンサード リンク