無料でC/C++によるWinAPI+GUI開発環境を構築する方法

ちょい役でC++とWinAPIを使ったGUIアプリ作ろうと思ったんですが、ガッツリ開発する訳でもないのVisual C++を買うのもの気が引ける・・・ってことで今回は無料でWindowsアプリが開発できる環境の構築を模索し、知り得た情報を備忘録として残したいと思います。

ツール導入手順
Eclipseの導入

まずは、定番の統合開発環境であるEclipseのインストールを行います。今回は”eclipse 日本語”でググってヒットした、Pleiadesを使用させていただきました。

Pleiadesの開発元サイトに行き、各バージョンのEclipse(今回は”Eclipse 4.5 Mars”)のボタンをクリックします。

img1

次に、開発対象の言語を選択する画面へ遷移するので、”C/C++”の32bit Full Editionを選択し、ダウンロードします。

img2

ダウンロードが完了したら解凍を行います。今回は解凍先を”C:\C++\”としました。
解凍が終了したら、Eclipseの導入は終わりです。

ResEditの導入

次に、GUIプログラミングには欠かせないダイアログを容易に作成するため、ResEditを導入します。
ResEditを導入すれば、GUI環境でダイアログの作成が行えます。

まずは作者様のサイトへ行き、ResEditをダウンロードします。
ResEditは開発環境が32bitか64bitかでダウンロードするモジュールが変わるため、環境に応じて、Downloadの箇所にある”ResEdit-win32.7z”(32bitの場合)か”ResEdit-x64.7z”(64bitの場合)をダウンロードします。

img3

ダウンロードが完了したらこちらも、”C:\C++\”へ解凍します。
解凍を行うと”ResEdit32.exe”か”ResEdit64.exe”が作成されるので、実行してインストールを開始します。

インストール画面の途中で、以下のインストール先を入力する画面が表示されるので、ここを”C:\C++\ResEdit”に変更します。
※まだインストールに関する注意点があるため、NEXTは連打しないでください。

img4

途中で以下のような画面が表示されますが、不要なアプリのインストール画面なので”Decline”を選んでください。
※途中何度か表示されるのでその都度”Decline”を選んでください。
※途中Webブラウザが起動するかもしれませんが閉じていただいて構いません。

img5

以下の画面が表示されたらResEditのインストール完了です。

img6

初回設定
Eclipse初回設定

Eclipseの初回設定のためEclipseを起動します。
起動は”C:\C++\pleiades\eclipse\eclipse.exe”を実行します。

実行すると、以下のようにworkspaceの場所(プロジェクトファイル保管先)を聞かれます。
次回以降聞かれないようにするため、”この選択をデフォルトとして使用し~”のチェックボックスをONにしましょう。

img7

workspaceの設定が完了したら、こちらはいったん置いておきます。

ResEditの初回設定

ResEditの初回設定のため”C:\C++\ResEdit\ResEdit.exe”を実行します。

実行すると、以下のような画面が表示されますが、ひとまずCancelボタンを押して閉じます。

img8

画面を閉じると、以下のように”インクルードパスが未設定です。設定画面を開きますか?”と聞かれますので、Yesボタンを押します。

img9

もし聞かれない場合は、メニューのOptions→Preferences…を選択して、設定画面を表示してください。

img10

●インクルードパスの設定

設定画面を開いたら、まずはインクルードパスの設定を行います。

設定画面の左側にあるメニューからGeneral→”Include paths”を選択してください。
以下のような画面に切り替わったら、Addボタンと同じ行にあるテキストボックスに、”C:\C++\pleiades\eclipse\mingw\include”と入力し、Addボタンを押します。

img11

すると、以下のようにインクルードパスが設定されます。

img12

●日本語化

次にResEditの日本語化を行います。

設定画面の左側にあるメニューから”General”を選択してください。
“General”を選択したら、Languageフィールドのプルダウンメニューを選択し、”Japanese”を選んでください。

img13

以上の作業が終わりましたら、設定画面下部のOKボタンを押してください。
ボタンを押すと、”変更を反映するためResEditを再起動するしてください。”と表示されるので、ResEditをいったん終了します。

img14

C++によるWinAPI+GUI開発手順
C++プロジェクト作成

初回設定が終わりましたらEclipseへ戻ります。
赤矢印のボタンを押して、ワークベンチへ移動してください。
すでに、ワークベンチ画面を開いている場合は、この手順は飛ばしてください。

img15

赤い矢印のボタンを押して新規プロジェクトを作成します。

img16

プロジェクトの種類を選択する画面が開くので、”C/C++”内の”C++プロジェクト”を選択して、”次へ(N)>”ボタンを押してください。

img17

プロジェクト設定画面に移動するので、プロジェクト名を入力し、プロジェクト・タイプに”空のプロジェクト”を選び、ツールチェーンを”MinGW GCC”に設定してください。
設定が終わりましたら”完了(E)”ボタンを押してください。
※プロジェクト名は今回は”guitest”としています。

img18

完了ボタンを押したらワークベンチに戻るので、GUI開発に必要な設定を行います。

プロジェクトの設定

プロジェクト設定画面を開くため、左側のプロジェクト名をクリックし”ALT+ENTER”キーを押します。
(プロジェクト名を右クリック→プロパティー)からも開くことができます。

img19

プロジェクト設定画面を開いたら、左側の”C/C++ビルド”→”設定”(矢印1番)を選択します。
設定を選択したら、次に”ツール設定”タブ(矢印2番目)を選択します。
タブを選択したら、右側のスクロールバーを下まで下ろしましょう。

img20

スクロールバーを下まで移動させたら、左側の”MinGW C++ Linker”→”その他”(矢印1番)を選択してください。
選択後、”リンカー・フラグ”(矢印2番)のテキストボックスに”-mwindows”と入力してください。(このオプションは、実行時にコンソール画面を表示しなくさせるための指定です)

!ここから先の設定は、ダイアログを使う予定のあるプロジェクトにのみ行ってください。
その他のオブジェクトを追加するため矢印3のボタンを押してください。

img21

以下のような入力画面が表示されるのでファイル:の部分に”resource.o”と入力してください。

img22

OKボタンを押したら、その他のオブジェクトに”resource.o”が追加されます。

次に、右側のスクロールバーを上部に移動させ、”ビルド・ステップ”タブ(矢印部分)を選択してください。

img23

”ビルド・ステップ”タブに移動したら、ビルド前のステップ内コマンド:のテキストボックス(矢印部分)に”windres ../resource.rc ../resource.o”と入力します。

img24

以上でプロジェクトの設定は終わりです。
OKボタンを押して、設定画面を閉じてください。

ResEditによるダイアログの開発

Eclipseによる開発に入る前に、ダイアログを作っておきます。
(開発の順序は前後しても問題ありませんが、コンパイルの前までにはダイアログは作成しておいてください)
※ダイアログを使用する予定の無い場合は、飛ばしてください。

前の手順で終了させたResEditを再度起動します。
ResEditを起動すると以下の画面が表示されるので”Developer mode”ラジオボタン(矢印部分)を選択して、”次へ”ボタンを押します。

img25

次の画面に遷移したら”Resource Script”ラジオボタン(矢印1)を選択し”Location:”(矢印2)に”C:\C++\pleiades\workspace\guitest”(先ほど作成したプロジェクトファイルの格納先)と入力し”Name:”(矢印3)に”resource”と設定します。
”Create project folder”(矢印4)のチェックは外しておきます。
設定が完了したら”Finish”ボタンを押します。

img26

設定画面を閉じたら”CTRL+D”キーを押して、ダイアログを追加します。
(メニューのファイル→リソースの追加→ダイアログでも追加することができます)
ダイアログを追加すると、以下のような表示になるかと思います。

img27

この画面で、コントロールの配置やIDの設定などを行います。
※画面の例では、テキストボックスを配置して、IDに”TESTEDIT”を設定しています。
※他の設定についても、左側のプロパティから変更してください。
ダイアログのデザインが終わったら、矢印の位置にある保存ボタンを押します。

img28

リソースファイルの保存が終わったら、ResEditを終了させてEclipseへ戻りましょう。

EclipseによるC++開発

Eclipseへ戻ったら、左側のプロジェクト名(矢印部分)を右クリックして”新規”→”ソース・ファイル”を選択します。
※今回はテストのためソース・ファイルのみを追加しています。
 ヘッダー・ファイルを追加したい場合は”新規”→”ヘッダー・ファイル”で行ってください。

img29

すると、新たな画面が表示されるので、”ソース・ファイル(E):”のテキストボックスへ”ファイル名.cpp”と入力して、”完了(F)”ボタンを押します。

img30

完了ボタンを押すとワークベンチに戻りますので、ここからは通常通りWinAPIアプリの形式で開発してください。

img31

一応テスト用ソースコードを載せておきます。

/*
 * guitest.cpp
 *
 *  Created on: 2015/11/04
 *      Author: NEGINEGI
 */

#include <windows.h>
#include "resource.h"

INT_PTR CALLBACK DlgProc(
        HWND hDlg,
        UINT uMsg,
        WPARAM wParam,
        LPARAM lParam)
{

    switch(uMsg){
    case WM_COMMAND:
        switch(LOWORD(wParam)){
        case IDOK:
            char buff[255];

            GetDlgItemText(hDlg, TESTEDIT, buff, sizeof(buff));
            MessageBox(hDlg, buff, 0, 0);
            break;
        case IDCANCEL:
            EndDialog(hDlg, 0);
            break;
        default:
            return 1;
        }
        break;
    }

    return 0;
}

int WINAPI WinMain(
        HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPSTR lpCmdLine,
        int nShowCmd)
{
    DialogBox(hInstance,
            MAKEINTRESOURCE(IDD_DIALOG1),
            NULL, (DLGPROC)DlgProc);

    return 0;
}

コーディングが完了したら”CTRL+S”キーを押してファイルを保存後、”CTRL+B”キーでビルドを行ってください。
ビルド完了後、赤矢印部分の実行ボタンを押すと、プログラムの実行が行えます。

img32

テスト用のプログラムを実行すると、以下のようにダイアログが表示され、テキストボックスに文字を入れてOKボタンを押すと、ボックスの内容がメッセージとして表示されます。
また、キャンセルボタンを押すとダイアログが閉じます。

img33

以上で環境構築とプログラミングは終了です。
お疲れ様でした。

さいごに

細かく説明していたら予想以上のボリュームとなってしまいました今回ですが、これでちょい役のツール作る際にわざわざお金出して開発環境を整えなくても、無料で開発できるようになりました。
何かご指摘がありましたら、コメントください。

お役に立てれば幸いです。
それでは失礼します。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. しーちゃん より:

    上記から配布するにはどの様にしたら良いのですか?

    • negi より:

      コメントありがとうございます。
      実行可能形式のファイル(*.EXE)が「workspaceの場所」内のプロジェクト名ディレクトリ/Debugに格納されているので
      それを配布すればよろしいかと思います。