【Delphi / C++Builder】Win32とWin64向けアプリケーション開発環境を設定する

#統合開発環境 Delphi / C++Builder / RAD Studio で Win32とWin64向けアプリケーション開発環境を設定する

統合開発環境 Delphi / C++Builder / RAD Studioにおいて、Windows 32bitと64bit向けアプリケーション開発に必要な環境設定についてご紹介します。また、RAD Studioでは、32bitのWindows PC上で開発したアプリケーションをネットワーク上にある他の Windows 64bit PC 環境でテスト実行することも可能で、このようなリモート環境でテスト実行させるために必要となる「プラットフォームアシスタンスサーバー」のインストール方法についてもあわせてご紹介します。

**当記事の内容を動画にて紹介しています。**
[Youtube: Win32とWin64向けアプリ開発の開発環境を設定する](https://youtu.be/ERg1QPbY3Jc)

**当記事の内容はDelphi / C++Builder / RAD Studioの無料のトライアル版でお試し可能です**
[記事： クロスプラットフォーム開発環境 RAD Studio / Delphi / C++Builder のインストール (無料体験版のインストール）](http://qiita.com/kazaiso/items/479fdf1170fa886fe208)


##関連情報 / エンバカデロ Dockwiki の紹介
基本的なWin32, Win64の開発環境セットアップ方法はエンバカデロテクノロジーズのDocwikiという情報Webサイトに掲載されています。

* http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/Windows_開発者ガイド：インデックス

[エンバカデロ]と[Docwiki]の単語の検索でたどり着くことができるでしょう。そして日本語の設定も可能です。

このDocwikiでは様々な情報が提供されています。上記のWindowsアプリの開発者ガイドも掲載されています。そしてマルチデバイス、クロスプラットフォームアプリの開発についても掲載されています。Delphi. C++Builderがサポートしている開発環境は、Windows 32bit, 64bitのみならず、macOS, iOS, Androidと数多くのOSをサポートしており、そして、各OSへの接続と、デバッグ方法も提供しています。

* http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/マルチデバイス_アプリケーションの開発

この複数OSをサポートするクロスプラットフォーム開発環境のRAD Studioですが、Windows 32bit環境は古くからサポートされ、提供され続けている機能ですので、今回は、主にWindows 64bitアプリ向けの開発環境の整え方をみていきます。

* http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/64_ビット_Windows_アプリケーション開発

また、ご自身の開発環境にWindows 64bit環境をを用意できない、とか、または開発環境を32bitとし、デバッグ実行環境を 64bitとして分けたい、などの理由で、リモートにあるWindows 64bit環境に、配置、デバッグ、テスト実行を行いたい場合に利用できるリモートデバック環境のセットアップについても後ほどご紹介します。ちなみにその資料はこちら。

* http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/32_ビット_PC_を_Win64_PC_に接続する



## デスクトップ上でWindows 32bit/64bitアプリの開発環境を整える
Windows32bit, 64bitアプリ開発においては、必要なSDKなどは Delphi / C++Builderのインストール時に同時に行われており、特別な設定をすることなく用意ができています。
Windows 64bitアプリの開発も、RAｄStudioの右上のプロジェクトマネージャ内に表示されている ターゲットプラットフォームを右クリックして表示される プラットfフォームの追加を選択して、プラットフォームとして 64bit Windows を選び、「追加」のボタンをクリックするだけで、Windows 64bit対応のアプリ開発が開始できます。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/a27ee441-cb8c-5d68-3af9-325b29da8521.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/145847/069f3eeb-08fb-2a8e-beb5-e695ef30ef37.png)

そうするとターゲットとするWindows 32bit,64bitが共に表示されて、ダブルクリックするだけで、32bit 向けアプリか、64bit向けアプリかを切り替えることができます。
実際にアプリをビルドする際にも、開発環境のインストールされた環境がWindows 64bit環境なら、そのまま32bitアプリと64bitアプリをビルド、動作テストを行うことができます。

##リモート環境でアプリケーションをテスト実行、デバッグする環境を整える
次に、この開発環境がインストールされているPCではなく、別のネットワーク上に存在するWindows 64bit 環境にアプリを配置して、テスト実行、デバッグする方法をご紹介します。 
リモートの環境にアプリを配置、実行するために「プラットフォームアシスタンンスサーバー」が用意されています。このプラットフォームアシスタンスサーバーと開発環境を接続し、配置、実行することができます。

###リモートPC側にプラットフォームアシスタンスサーバーをセットアップする
プラットフォームアシスタンスサーバーは開発環境がインストールされているパスは、2017年4月時点の最新バージョンのデフォルトインストール状態においては、下記のPathにあります。

 * C:\Program Files (x86)\Embarcadero\Studio\19.0
 
※最も下層のフォルダの「19.0」は、バージョンが上がるごとに1づつ増やされている連番です。
 
ここに「PA Server」フォルダがあり、このフォルダの中にある「Setup_paserver」という名前の事項ファイルが、プラットフォームアシスタンスサーバーのWindows向けセットアップファイルになります。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/1b4b92c7-b62d-199c-09e8-43a010fa8ea3.png)

このセットアップ用の「Setup_paserver」ファイルを、リモート実行したいWindows 64bit環境に、コピーします。ネットワークでも、USBメモリでもクラウドでも、どのような手段でもよいのでコピーしてください。

そしてリモートのWin64環境で「Setup_paserver」を実行し、プラットフォームアシスタンスサーバーをインストールします。
このプラットフォームアシスタンスサーバーを通して開発アプリをこのリモート環境に送り込み、デバッグ実行を行います。

![image](https://qiita-image-store.s3.amazonaws.com/0/145847/3031db51-dbd4-feb5-b823-6683fad09afe.png)

セットアップが進行したら、ダイアログに従ってインストールを進めてください。

インストールが完了すると、下記PathにPAServer.exeがインストールされていますので、これを管理者権限で実行します。

* C:\Program Files (x86)\Embarcadero\PAServer\19.0

![image](https://qiita-image-store.s3.amazonaws.com/0/145847/73d51e84-3a36-6c32-e87c-e7c0ac1a8096.png)

そうするとプラットフォームフォーアシスタンスサーバーが、コマンドラインで起動してきます。 クエスチョンで実行可能なコマンドが表示されます。ここでは、プラットフォームアシスタンスサーバーが動作している PCの IPアドレスを調べる「i」とポートを調べる「p」iを実行してそのIPアドレスとポートを覚えておいてください。
このIPとポートで開発環境(RAD Studio)から接続設定をおこないます。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/68142bba-cb1a-9860-69e0-abef828112b2.png)


###開発環境側で接続設定を行う。
開発環境側の設定を行ってまいります。

1. RAD Studioを起動し、画面上部の[ツール]から[オプション]を選択します
2. オプションダイアログが開いたら、環境オプションの下のほうの「接続プロファイルマネージャー」をひらきます 。
3. 接続プロファイルマネージャーの「追加」ボタンをクリックして接続プロファイルを作ります。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/3d0da679-dd1d-7dd2-a8b9-1da6690fcf84.png)

4. 「接続プロファイルの作成」ダイアログが表示されるので、「プロファイル名」としてお好きな名前を付けます。プラットフォームアシスタンスサーバーが入っている接続先はWindows 64bitなので、接続先の「プラットフォーム」として[64ビット Windows] を選択して「次へ」ボタンをクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/68b77c78-5222-4303-f25b-23069b304d66.png)

5. 次の「リーもーとマシン情報」のパートにて、接続するPC、つまり先ほどプラットフォームアシスタンスサーバーのコンソールで表示させたIPアドレスを入力します。ポート番号も入力します。デフォルトの番号のままでOKです。
6. 「接続テスト」ボタンをクリックして正しく接続できるか確認します。「終了」ボタンをクリックしてダイアログを閉じます。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/9e1c3a8f-af66-8033-28b5-5b4605e30c52.png)


これで接続プロファイルが作成できました。

##開発環境で作ったアプリケーションをリモート環境に配置してテスト実行・デバッグ
それでは実際にアプリを作成して、プラットフォームアシスタンスサーバーがインストールされているリモート環境にアプリを作って、配置してみましょう。

まずは簡単なVCLアプリを作ります。[こんなふうに](https://youtu.be/EBDNBFiTVRA)

1. 右上のプロジェクトマネージャ内の「ターゲットプラットフォーム」を右クリックして、「プラットフォームの追加」を選択します。
2. 「プラットフォームの選択」ダイアログが表示されたら、[64bit windows]を選択して[OK]ボタンで追加します。
3. 右上のプロジェクトマネージャ内の「ターゲットプラットフォーム」内の「64bit Windows」プラットフォームを右クリックして表示されるコンテキストメニューの「プロパティ」を選択します。
4. 「プラットフォームプロパティ」ダイアログが表示されます。このダイアログの「プロファイル」部分に、さきほど作った接続プロパティの名称を選択しましょう。
![image](https://qiita-image-store.s3.amazonaws.com/0/145847/6a183907-699d-e66e-89c7-1a9bbcaeabec.png)
6. これで、ビルド後にアプリが配置される先（ターゲット）として、リモート接続先を指定できました。
1. ではビルド。 上部の三角ボタンか、F9+Shift+Ctrlキーを押します。コンパイルされ、アプリとして実行されます。コンパイルが終わっても、開発環境側でアプリは立ち上がらず、リモート環境側にアプリが配置され、テスト実行されています。

また、デバッグを行うことも可能です。コード内、ボタンクリックのイベント内にブレークポイントを設定し、デバッグ実行してみましょう。デバッグ実行はF9キーか、先ほどの三角ボタンの右横にある「実行(F9)」ボタンのクリックで作動します。

リモート環境のほうで、デバッグ実行モジュールについてファイアーウｫール警告がでたら、エンバカデロのデバッガーカーネルであることを確認して、アクセスを許可してください。

リモート環境で動作させても、開発環境側では、ブレークポイントで止まるなど、通常のデスクトップ上の開発環境（同一PCでの開発デバッグ）と変わりなくデバッグできます。

このようにプラットフォームアシスタンスサーバーを通じて、Windowsのリモート環境への配置、デバックを行うことができます。