Environment   /   Windows Me

ホーム   C/C++チュートリアル   wxWidgetsへ戻る

Windows Me

Windows Me で C/C++ GUI プログラミングをするための方法を説明しています。

Windows Me は、Parallels Desktop 15 にインストールしています。Parallels Desktop 15 では、Windows Me はサポート外なので、インターネット、macOS との間でのコピー&ペースト、VGA 以外の画面サイズは使用できません。

テキストエディタ

Windows Me では、Emacs は正常に動作しません。Windows 付属のメモ帳を使っています。ご自身の好みのテキストエディタを使ってください。

Code Blocks

Code Blocks は、Windows 20000 以上で動作します。Windows Me では、Code Blocks は使えません。

MinGW

C/C++ コンパイラとして MinGW(Minimalist GNU for Windows)を使います。次のリンクから MinGW-3.0.0-1.exe をダウンロードしてください。

Find out more about MinGW - Minimalist GNU for Windows | SourceForge.net

macOS でダウンロードしたファイルを Parallels Desktop 15 の Windows Me へコピーするには次のようにします。

  1. macOS でフォルダを新しく作り、その中にダウンロードした MinGW-3.0.0-1.exe を入れます。
  2. macOS に付属しているディスクユーティリティを起動して、「ファイル」メニューから「新規イメージ」→「フォルダからのイメージを作成」を選びます。
  3. 表示されたダイアログで MinGW-3.0.0-1.exe を入れたフォルダを選び「選択」をクリックします。
  4. 次にイメージフォーマットで「ハイブリッドイメージ(HFS+/ISO/UDF)」を選びデスクトップなどに「保存」します。
  5. 出来上がった .dmg を Parallels Desktop の CD/DVD に接続して、Windows Me を再起動すると、Windows Me のCD ドライブに .dmg が接続されます。

MinGW-3.0.0-1 のインストールはすべてデフォルトのままで大丈夫です。

MinGW C/C++ コンパイラを便利に使うには Windows Me の環境変数に次のようにして登録します。

  1. フォルダオプションで「すべてのファイルとフォルダを表示する」を選び「適用」をクリックします。
  2. メモ帳などのテキストエディタで C:\autoexec.bat を開きます。
  3. SET PATH 項目の最後に ;C:\MinGW\bin と追加して保存します。
  4. Windows Me を再起動します。
  5. コマンドプロンプトを起動して、gcc --version とコマンドします。
  6. GCC.EXE (GCC) 3.2.3 (mingw special 20030504-1) と表示されれば登録は完了です。

Windows API プログラミング

MinGW などの C/C++ コンパイラをインストールするだけで Windows API(Win32)プログラミングができるようになります。次のコードをメモ帳などで記述して、winapp.c などのファイル名で保存してください。

Windows のメモ帳の場合は、winapp.c.txt と、.txt がついてしまいます。必ずあとで .txt を取ってください。

winapp.c


#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int     WINAPI   WinMain(HINSTANCE hInstance,
			 HINSTANCE hPrevInstance,
			 LPSTR     lpCmdLine,
			 int       nCmdShow)
{
  WNDCLASS wc;
  HWND     hwnd;
  MSG      msg;

  wc.style         = CS_HREDRAW | CS_VREDRAW;
  wc.lpfnWndProc   = WndProc;
  wc.cbClsExtra    = 0;
  wc.cbWndExtra    = 0;
  wc.hInstance     = hInstance;
  wc.hIcon         = NULL;
  wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
  wc.hbrBackground = (HBRUSH)COLOR_BACKGROUND + 1;
  wc.lpszMenuName  = NULL;
  wc.lpszClassName = TEXT("WINDOW");

  RegisterClass(&wc);

  hwnd             = CreateWindow(TEXT("WINDOW"),
				  TEXT("Hello Windows API!"),
				  WS_OVERLAPPEDWINDOW | WS_VISIBLE,
				  CW_USEDEFAULT, CW_USEDEFAULT, 300, 200,
				  NULL, NULL, hInstance, NULL);

  while (GetMessage(&msg, NULL, 0, 0))
    {
      DispatchMessage(&msg);
    }

  return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch (msg)
    {
    case WM_DESTROY:
      PostQuitMessage(0);
      break;
    }

  return DefWindowProc(hwnd, msg, wParam, lParam);
}
    


コンパイルと実行

コマンドプロンプトを起動して、winapp.c を保存したディレクトリに移動してください。そして次のようにコマンドします。


// コンパイル
gcc winapp.c -o winapp -mwindows

// 実行
winapp
    

出来上がった winapp.exe をダブルクリックしても実行できます。winapp.exe をデスクトップなどに移動して、ダブルクリックしても実行できます。


実行結果



wxWidgets プログラミング

wxWidgets は、MSYS というアプリケーションを使ってインストールします。

MSYS

MSYS は、Windows に Unix 環境を提供するアプリケーションです。次のリンクから MSYS-1.0.10.exe をダウンロードします。それ以上のバージョンは、Windows Me では使えません。

MinGW - Minimalist GNU for Windows - Browse /MSYS/Base/msys-core/msys-1.0.10 at SourceForge.net

ダウンロードした MSYS-1.0.10.exe も先ほど作った .dmg イメージの元になったフォルダに入れます。そして .dmg イメージを作り直し、Windows Me を再起動すると、Windows Me でも .dmg が使えるようになります。今後このようにして、macOS から Windows Me へデータを移していきます。

インストールする場所はデフォルトで指定されている C:\msys\1.0 にします。コマンドプロンプトが起動して、いろいろと質問されますが、すべてエンターキーを押してください。

インストールが終了すると、Read Me が表示されると思いますが、適宜閉じてください。デスクトップに MSYS のショートカットができます。それをダブルクリックすると MSYS のコンソールが開きます。確認できましたら MSYS のコンソールは一旦閉じておきます。


wxWidgets

次のリンクから wxMSW-2.5.3-Setup.zip をダウンロードしてください。

wxWidgets - Browse /2.5.3 at SourceForge.net

解凍された wxMSW-2.5.3 フォルダの中の setup.exe をダブルクリックするとインストールが始まります。 インストール場所はデフォルトの C:\wxWidgets-2.5.3 にします。ただしこのインストーラーは必要なファイルを展開するだけで、実際のインストールは行いません。展開が終りましたら MSYS のコンソールを起動して、次のようにコマンドします。


// wxWidgets のディレクトリに移動します
cd C:/wxWidgets-2.5.3

// wxWidgets をコンフィギュア(環境設定)します
./configure --disable-shared
    

次のように表示されればコンフィギュアは成功です。なお、Windows Me は Unicode 非対応です。


Configured wxWidgets 2.5.3 for `i686-pc-mingw32´

  Which GUI toolkit should wxWidgets use?                 msw
  Should wxWidgets be compiled into single library?       no
  Should wxWidgets be compiled in debug mode?             no
  Should wxWidgets be linked as a shared library?         no
  Should wxWidgets be compiled in Unicode mode?           no
  What level of wxWidgets compatibility should be enabled?
                                       wxWidgets 2.2      no
                                       wxWidgets 2.4      yes
  Which libraries should wxWidgets use?
                                       jpeg               builtin
                                       png                builtin
                                       regex              builtin
                                       tiff               builtin
                                       zlib               builtin
                                       odbc               no
                                       expat              builtin
                                       libmspack          no
                                       sdl                no
    

続いて make と make install をします。


// まず make をします。
make

// make は時間がかかります。次のように表示されれば make は成功しています。
make[1]: Leaving directory `/c/wxWidgets-2.5.3/utils/wxrc´

// 次に make をインストールします。
make install

// 次のように表示されればインストールは成功です
 ------------------------------------------------------

 The installation of wxWidgets is finished.  On certain
 platforms (e.g. Linux) you'll now have to run ldconfig
 if you installed a shared library and also modify the
 LD_LIBRARY_PATH (or equivalent) environment variable.

 wxWidgets comes with no guarantees and doesn't claim
 to be suitable for any purpose.

 Read the wxWindows Licence on licencing conditions.

 ------------------------------------------------------

// ホームディレクトに戻ります。
cd

// バージョンを確認します。
wx-config --version
2.5.3
    


これで wxWidgets プログラミングができるようになりました。次のソースコードを記述して、 C:\msys\1.0\home\ユーザー名 に保存してください。

wxapp.cpp


#include <wx/wx.h>

class Hello : public wxFrame
{
public:
    Hello();
};

class App : public wxApp
{
public:
    virtual bool OnInit();
};

Hello::Hello() : wxFrame(NULL, -1, wxT("Hello wxWidgets!"),
                         wxDefaultPosition, wxSize(300, 200))
{
    Center();
}

IMPLEMENT_APP(App)

bool App::OnInit()
{
    Hello *hello = new Hello();
    hello->Show();

    return true;
}
    


コンパイルと実行

MSYS のコンソールを開いて次のようにコマンドします。コンソールを開いた場所が、C:\msys\1.0\home\ユーザー名 になっています。


// コンパイル
g++ wxapp.cpp `wx-config --cppflags --libs` -o wxapp -mwindows

// 実行
 ./wxapp
    

ディレクトリを開いて wxapp.exe をダブルクリックして実行することもできます。 wxapp.exe をデスクトップなどへ移動してもダブルクリックで実行できます。

実行結果


wxWidgets の削除

インストールした wxWidgets は、C:\msys\1.0\local にコピーされます。C:\wxWidgets-2.5.3 は不要です。

コントロールパネルを使って wxWidgets-2.5.3 をアンイストールします。そして C:\ の wxWidgets-3.0.2 も削除します。

C:\msys\1.0\home\ユーザー名に wxapp.exe を削除して、もう一度 wxapp.cpp をコンパイルし直してください。正常にコンパイルできることでしょう。



GTK プログラミング

完全にではありませんが、GTK プログラミングをすることもできます。

次のリンクから gtk-dev-2.10.11-win32-1.exe をダウンロードしてください。

/gtk+-win32-devel/2.10.11/gtk-dev-2.10.11-win32-1.exeをダウンロード - Glade/Gtk+ for Windows - OSDN

インストールは次の項目以外は、デフォルトのままにします。

Select components to install で Glade を外します。Glade は残念ながら正常に動作しません。

インストールが終わったら、MSYS を起動して、次のようにコマンドします。


gtk-demo
    
残念ながら gtk-demo は、文字化けしています。

いくつかの機能は使えないみたいですが、プログラミングはできます。次のコードを記述して、C:\msys\1.0\home\ユーザー名 に保存してください。


gtkapp.c


#include <gtk/gtk.h>

int main(int argc, char *argv[])
{
    GtkWidget * window;
    
    gtk_init(&argc, &argv);
    
    window = gtk_window_new    (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title       (GTK_WINDOW(window), "Hello GTK!");
    gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);
    gtk_window_set_position    (GTK_WINDOW(window), GTK_WIN_POS_CENTER);
    
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
    
    gtk_widget_show(window);
    gtk_main();
    return 0;
}
    


コンパイルと実行

MSYS を起動して次のようにコマンドします。


// コンパイル
gcc gtkapp.c `pkg-config --cflags --libs gtk+-2.0` -o gtkapp -mwindows

// 実行
./gtkapp
    

ディレクトリを開いて gtkapp.exe をダブルクリックして実行することもできます。 gtkapp.exe をデスクトップなどへ移動してもダブルクリックで実行できます。


実行結果


30461 visits
Posted: Jul. 11, 2020
Update: Jul. 11, 2020

ホーム   C/C++チュートリアル   wxWidgetsへ戻る   目次