ホーム   
C/C++チュートリアル   
wxWidgetsへ戻る 
    
    
    Windows 3.1 
    
    Windows 3.1 で Windows API(Win16)C GUI プログラミングをする方法を説明しています。
    
    Windows 3.1 は、Parallels Desktop 15 にインストールしています。実機や他のバーチャルマシンにインストールする要領もだいたい同じだと思います。Parallels Desktop 15 では、Windows 3.1 はサポート外なので、インターネット、macOS との間でのコピー&ペースト、VGA 以外の画面サイズは使用できません。
    
    使用している Windows は、Windows 3.1 英語版です。
    
    テキストエディタ 
    
    Windows API のための IDE(統合開発環境)に付属しているエディタと Windows 3.1 に付属している Notepad(メモ帳)を使用します。
    
    
MS DOS 
    
    Windows 3.1 は、MS DOS の 1 つのアプリケーションとして実行されます。まず MS DOS のインストール方法を説明します。
    
    次のリンクから Microsoft MS-DOS 6.0 (Full) (3.5-1.44mb) の English 版をダウンロードして解凍してください。
    
    
    WinWorld: MS-DOS 6.0 
    
    そして、次のようにしてインストールします。
    
    
    Parallels Desktop 15 を起動してファイルメニューから「新規...」を選びます。 
    
    表示される「インストールアシスタント」で「DVD/イメージファイルからWindows/その他 OS をインストール」を選び、「続行」をクリックします。 
    
    次の画面で「ソースなしで続行する」にチェックを入れて、「続行をクリックします。 
    
    「オペレーティングシステムを選択してください」というプルダウンメニューが表示されますので、「他のWindows」から「Windows 3.11」を選んでください。 
    
    次の画面で名前を適当な名前にして、「インストール前に構成をカスタマイズする」にチェックを入れて「作成」をクリックします。 
    
    表示される「"つけた名前"の構成」で「ハードウェア」→「フロッピーディスクを選び、「ソース」プルダウンメニューで「イメージファイルを選択を選び、先ほどダウンロードした Microsoft DOS 6.0 (3.5) フォルダを選び、下のプルダウンメニューから「すべてのファイル (*)」を選択して、Disk1.imgを選びます。 
    
    「"つけた名前"の構成」画面を閉じ、「インストールアシスタント」画面で「続行」をクリックします。 
    
    「Microsoft MS-DOS 6 Setup」画面が表示されます。Enter キーを押してください。 
    
    次の画面で「Configure unallocated disk space (recommended).」が選ばれているのを確認して Enter キーを押します。もし選ばれていなかったら ↑↓ キーを使って選択してください。 
    
    ドライブAにDisk 1をセットしてください。という画面が表示されます。そのまま Enter キーを押してください。 
    
    「この仮想マシンには OS がインストールされていません。」というアラートが出ますが、そのまま「OK」をクリックします。 
    
    「No boot device is available, press Enter to continue.」と表示されると思います。Enter キーを押します。 
    
    フォーマットが始まって、「The settings are correct.」が選ばれた画面が現れます。United States が選ばれていますが、そのまま Enter キーを押します。Japanese という選択肢は存在しません。 
    
    「C:\DOS_」が選択された画面が現れます。そのまま Enter キーを押します。 
    
    次の画面で、ドライブ A: に Disk 2 を挿入してください。と指示されたら、Parallels のウィンドウ上部のフロッピーアイコンをクリックして Disk 2 を選択して Enter キーを押してください。 
    
    ドライブ A: に Disk 3 を挿入してください。と指示されたら、同じように Disk 3 を選択して Enter キーを押してください。 
    
    すべてのフロッピーディスクを取り除いてください、と指示されたら、フロッピーディスクを取り除いて(「切断」を選びます) Enter キーを押します。 
    
    MS DOS が起動して、C:\>_ というプロンプトが表示されると思います。この画面をこのまま開いておくか、「処理」メニューから「ストップ」を選んで、この画面を閉じます。 
     
    
    Windows 3.1 
    
    次のリンクから Windows 3.1 (Retail) (3.5-1.44mb) の English 版をダウンロードして解凍してください。
    
    
    WinWorld: Windows 3.0 / 3.1 3.1 
    
    そして次のようにして Windows 3.1 をインストールします。
    
    
    先ほど作成した MS DOS を起動して、フロップードライブに、先ほど解凍した「Microsoft Windows 3.1 (3.10.103) (3.5)」フォルダの Disk01.img を接続します。 
    
    MS DOS 画面で次のようにして、Windows 3.1 のインストールを始めます。
    
C:\>_
// a: と入力してエンター
A:\>_
// setup.exe と入力してエンター
      
    
    「Windows Setup」画面が表示されます。Enter キーを押してください。 
    
    次の画面でも Enter を押します。そして指示に従って フロッピーディスクを交換していきます。 
    
    Name と Company を入力する画面が現れたら、それぞれ入力します。英語版なので日本語は入力できません。Company は入力しなくても大丈夫です。そして「Continue」ボタンをクリックします。 
    
    指示に従ってフロッピーディスクを交換して「Continue」をクリックします。 
    
    プリンターを設定する画面が表示されます。私は「No Printer Attached」(プリンターは使わない)を選択して「Install」をクリックしました。 
    
    次の画面では「MS-DOS Editor」が選択された状態で「OK」をクリックしました。 
    
    次の画面で、マウスとウィンドウの使い方のチュートリアルを始めるかどうかを聞かれます。マウスはともかくとして、ウィンドウの使い方は必ず見てください。「Run Tutorial」をクリックします。 
    
    次の画面で、マウスのチュートリアルを見たい場合は「M」キーを、ウィンドウの使い方を見たい場合は「W」キーを押します。 
    
    最後に「Exit Tutorial」をクリックします。そして「Reboot」をクリックして、コンピュータを再起動します。 
    
    コンピュータが再起動して、MS DOS の画面が表示されます。Windows 3.1 を起動するには次のようにタイプします。
    
C:\>_
// win と入力してエンター
     
    
    Windows 3.1 を終了する場合は、「Program Manager」の左上のクローズボタンをダブルクリックします。 
    
    「Exit Windows」ダイアログが表示されたら「OK」をクリックします。 
    
    MS DOS に戻ります。コンピュータを終了するには、Parallels Desktop の「処理」メニューから「ストップ」を選びます。実機の場合は、MS DOS 画面に戻ったら、コンピュータの電源を切ります。 
     
    
    Borland Turbo CPP For Windows 3.1 
    
    現在、Windows 3.1 で Windows API(Win16)プログラミングするための IDE(統合開発環境)としては、「Boland Turbo Cpp For Windows 3.1」と「Microsoft Visual C++ 1.0 Standard」と「Microsoft Visual C++ 1.0 Professional」の 3 つが使えます。Boland Turbo Cpp と Microsoft Visual C++ は両方インストールしておくことができます。
    
    ここではまず、一番サイズの小さい「Boland Turbo CPP For Windows 3.1」のインストールと使い方を説明します。
    次のリンクから Borland Turbo CPP For Windows 3.1 (3.5) English 版をダウンロードして解凍してください。
    WinWorld: Borland Turbo C++ 3.x (Win) 
    
    そして次のようにしてインストールと設定をします。
    
    
    MS DOS を起動して、フロッピードライブに Turbo C++ For Windows 3.1 (3.5) フォルダの tcppw1.ima を接続します。 
    
    MS DOS で win と入力して Windows 3.1 を起動します。 
    
    「Main」Group を開いて「File Manager」を起動します。 
    
    a(フロッピードライブ)を選択して、install.exe をダブルクリックして起動します。 
    
    次の画面で「Install」をクリックします。 
    
    指示に従ってフロッピーディスクを交換して「OK」をクリックします。 
    
    ツールのアイコンを追加する方法が説明されます。「OK」をクリックしてください。 
    
    ファイルの設定方法が表示されます。「OK」をクリックしてください。 
    
    Turbo C++ 31 のウィンドウが表示されたら左上のクローズボタンをダブルクリックしてウィンドウを閉じます。 
    
    「Accessories」グループを開いて「Notepad」ダブルクリックします。 
    
    Notepad が起動したら、File メニューから Open を選び、オープンダイアログで File Name 欄に config.sys と入力して、Directories で c:\ を選択して OK をクリックします。 
    
    開いた CONFIG.SYS の FILES=30 を FILES=20 に書き換えて、Notepad の File メニューから Save を選びます。 
    
    再び Notepad の File メニューから Open を選び、オープンダイアログで File Name 欄に autoexec.bat と入力して、Directories で c:\ を選択して OK をクリックします。 
    
    開いた AUTOEXEC.BAT の PATH 行に ;C:\TCWIN\BIN と追加して、Notepad の File メニューから Save を選びます。 
    
    Notepad ウィンドウ、Accessories ウィンドウ、Main ウィンドウを閉じて、Program Manager ウィンドウも閉じます。Exit Windows ダイアログが表示されたら OK をクリックして、Windows 3.1 を終了します。 
    
    MS DOS 画面に戻りましたら、Parallels Destop の 処理メニューからストップを選んで MS DOS を終了します。実機の場合はコンピュータの電源を切ります。 
    
    コンピュータを再起動しなければ、config.sys と autoexec.bat に記述した変更が有効になりませんので、Windows 3.1 と MS DOS は必ず終了してください。 
     
    
    Win16 プログラミング 
    
    以上で、Boland Turbo CPP のインストールと設定が完了しました。MS DOS を起動して、Windows 3.1 を起動してください。そして次のようにして Win16 プログラミングを始めます。
    
    
    Program Manager で Turbo C++ 3.1 アイコンをダブルクリックして、開いた Turbo C++ 3.1 ウィンドウで、Tubo C++ をダブルクリックします。 
    
    About Turbo C++ ダイアログが表示されたら OK をクリックします。 
    
    noname00.cpp が表示されたら、Options メニュー → Environment → Editor.. を選んで、Tab Size を 4 に、 Default Extension を c にして OK をクリックします。 
    
    noname00.cpp に次のようにソースコードを記述してください。
    
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int     PASCAL   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)GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = "WINDOW";
    
    RegisterClass(&wc);
    
    hwnd             = CreateWindow("WINDOW",
                                    "Hello Win16!",
                                    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);
}
    
    コードを書きやすいように noname00.cpp の画面を Maximize(最大化)しています。
    ソースコードの最後は改行しておかないとコンパイラに警告されます。 
     
    
    記述が終わりましたら、File メニューから Save を選び、Save File As ダイアログで
    File Name を winapp.c などにして OK をクリックします。 
    
    コード画面に戻りましたら Run メニューから Run を選びと、ソースコードがビルドされて、アプリケーションウィンドウが起動します。 
    
    Main グループの File Manager で c:\tcwin\bin の winapp.exe をダブルクリックしても、アプリケーションは起動します。 
     
    
    Win16 API 
    
    Windows 3.1 と Boland Turbo C++ を使ったサンプルプログラムの掲載を始めました。
    
    
    Win16 API  
    
    Microsoft Visual C++ 1.0 
    
    Boland Turbo C++ がコンパクトで使いやすかったので、私は、Turbo C++ を使うことにします。
    
    記念すべき Microsoft Visual C++ 1.0 を使いたい場合は、次のリンクからダウンロードできます。
    
    
    WinWorld: Visual C++ 1.x 
    
    English 版ですが、Microsoft Visual C++ 1.0 Professional (3.5-1.44mb) か Microfofut Visual C++ 1.0 Standard (3.5-1.44mb) がインストールしやすいと思います。
    
    Boland Turbo C++ と Microsoft Visual C++ は両方インストールすることができます。Visual C++ の Professional 版と Standard 版は、どちらか選ばなければならないように思います。
    
     
Posted: Jul. 15, 2020
Update: Jul. 18, 2020