Environment   /   Windows 95

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

Windows 95

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

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

使用している Windows は、Windows 95 OSR 2.0 です。

テキストエディタ

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

Code Blocks

Code Blocks は、Windows 20000 以上で動作します。Windows 95 では、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 95 へコピーするには次のようにします。

  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 95 を再起動すると、Windows 95 のCD ドライブに .dmg が接続されます。

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

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

  1. マイ コンピュータなどを開き、「表示」メニューから「オプション」を選びます。
  2. 次に表示されるダイアログで「表示」タブを選び「すべてのファイルを表示する」を選び「適用」をクリックして、「OK」クリックします。
  3. メモ帳などのテキストエディタで C:\ に autoexec.bat というファイルを作ります。
  4. メモ帳で新規ファイルを作った場合は、autoexec.bat.txt と、最後に .txt がついてしまします。後で必ず .txt を取ってください。
  5. autoexec.bat に、 SET PATH=C:\MinGW\bin と記述します。。
  6. そして Windows 95 を再起動します。
  7. コマンドプロンプトを起動して、gcc --version とコマンドします。
  8. MSVCRT.DLL が見つかりませんという警告が出ると思います。「OK」をクリックして閉じてください。


MSVCRT.DLL

MinGW 3.0.0 を使うには msvcrt.dll が必要です。しかし Windows 95 にはおそらく msvcrt.dll はデフォルトではインストールされていません。Parallels Desktop をお使いの場合は、次の方法で Windows 98 などから msvcrt.dll をコピーしてきます。

  1. Windows 95 をインストールする時に使った起動用フロッピーディスクイメージを複製します。
  2. 複製したフロッピーディスクイメージの「情報を見る」で、すべてのユーザーが「読み/書き」できるようにします。
  3. Windows 98 などに複製したフロップーディスクイメージを接続して起動します。
  4. Windows 98 などでフロッピーディスクイメージをフォーマットします。
  5. Windows 98 などの C:\Windows\System から msvcrt.dll をコピーして、フロップーディクイメージにペーストします。
  6. Windows 98 などを修了します。
  7. Windows 95 に msvcrt.dll をペーストしたフロッピーディスクイメージを接続して起動します。
  8. Windows 95 でフロッピーディスクイメージの msvcrt.dll をコピーします。
  9. Windows 95 の C:\Windows\System に msvcrt.dll をペーストします。
  10. Windows 95 を再起動します。
  11. コマンドプロンプトを起動して、gcc --version とコマンドします。今度は次のように gcc のバージョンが表示されると覆います。
  12. 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 95 では使えません。

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 98 は 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 プログラミング

Windows 95 への GTK のインストールはまだ成功していません。


37231 visits
Posted: Jul. 12, 2020
Update: Jul. 12, 2020

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