Windows上でのクライアントのビルドについて

1. 対応コンパイラ

以下のコンパイラで確認しています。

2. boostのインストールと設定

クライアントをビルドするには事前にboostライブラリのインストールが必要です。

いずれのコンパイラも具体的なコンパイル操作についてはクライアントのみをビルドをご覧ください。

3. ビルド構成の確認

ソリューションやプロジェクトグループ単位でビルドする際は、事前に[構成マネージャ]で ターゲットと構成を確認してください。ターゲットと構成はすべてのプロジェクトで同じもの を選択します。

ただし、tdclcプロジェクトにはunicodeはありませんので、Release Debugを揃えてください。

4. VisualStudio 2010 Express での64bitコンパイル

VisualStudio 2010 Expressで64bit版をコンパイルする場合は、各プロジェクトの [オプション][構成プロパティー][全般][プラットフォームツールセット]を「v100」から Windows7.1SDK」に変更してください。

Express以外であれば「v100」のままでコンパイルできます。

5. VisualStudio でのリビルドコマンド

VisualStudioでリビルドコマンドを実行すると、正常にコンパイルできたにも関わらず 出力ファイルが一部存在しないことがあります。

複数のプロジェクトを同じフォルダに出力しているため、各プロジェクトのコンパイル開 始時にクリーンがされ、このような現象が起きます。 リビルドコマンドの代わりにクリーンとビルドを使うようにしてください。

6. DLLのファイル名とバージョン情報

C++のクラスをエクスポートするtdclcpp_*.dllは、コンパイラツールセットと文字セットおよび 64/32 クラスインターフェースのいずれかが異なるバイナリとは互換性がありません。

また、このライブラリは複数の異なる提供元から配布される可能性があります。その際、 システムディレクトリ上にインストールされたバイナリが互換性のないバイナリで上書きされると、 アプリケーションが正しく動作しなくなります。

この問題を解決するため、tdclcpp_XXX.dllは以下のルールで名前付けされています。

tdclcpp_[compiler][compiler_version]_[32|64][m|u][r]_[versionMajor]_[versionMiner].dll
ex) tdclcpp_vc100_64m_1_0.dll
[compiler]コンパイラを示す省略名(vc | bcb | mgw)
[compiler_version]3桁または2桁のコンパイラーバージョン
[32|64]32bit or 64bit
[r]ツールセットのランタイムDLL 使用する場合 r 使用しない場合 rなし
[m|u]文字セット(multibyte or unicode)
[versionMajor]メジャーバージョン(機能が大きく変わった場合に変更されます)
[versionMiner]マイナーバージョン(インターフェース変わった場合に変更されます)

Cインターフェースのtdclc_*.dllもほぼ同じ名前付ルールですが、 コンパイラツールおよび文字セットがバイナリの互換性に影響を与えないため、 上記名前付けルールのうち[compiler][compiler_version]および[m|u]はありません。

tdclc_[32|64]_[versionMajor]_[versionMiner].dll
ex) tdclc_64_1_0.dll

7. インストールとバージョン管理

BizStationによる公式配布版は、WindowsのSystemフォルダにインストールされます。

これを上書きする場合は、 必ずファイルに埋め込まれたバージョン番号を確認し、 より新しい場合のみ上書きするようにしてください。

オリジナルインターフェースの場合は、 異なった名前でProgram Filesフォルダにインストールすることを推奨します。

公式配布のバイナリはVisual Studio 2010でコンパイルされています。

tdclc_32|64_x_x.dllは純粋なCのAPIセットであるためコンパイラの互換性問題は発生しません。

8. マルチバイトとユニコード

tdclcpp_XXX.dllはマルチバイトとユニコードのどちらでもコンパイルできるため、 作成されるアプリケーションの文字セットに応じて使いやすい方を選択できます。

ただし、マルチバイトはutf8で処理を行う必要があるなどの注意点があるため、 Windows上ではユニコード版の方が一般的で使いやすく、お奨めです。

詳しくはSDKドキュメントを参照してください。