カスタマイズ‎ > ‎BRX‎ > ‎

ObjectARXの移植

BRX は ObjectARX のソースコードとの互換性が高く、多くの場合そのまま利用することができます。
BRXのコンパイラは Visual C++ 2010 (SP1) を使うため、移植対象は ObjectARX 2013 ~ 2014 となります。


移植時のポイント


■ プロジェクトの参照先設定

BRX では、ヘッダーファイル、ライブラリの参照先を変更することで、 ObjectARX のプログラムプロジェクトをそのまま利用することができます。
以下は BRX SDK を プログラムプロジェクトから見て、..\..\..\..\ の相対フォルダに展開したときの各参照先の変更方法となります。

ヘッダーファイルの参照先の変更
プロパティの[構成プロパティ]-[C++]-[全般]-[追加のインクルード ディレクトリ]での設定を変更する。
32bit および 64bit とプラットフォーム別のヘッダーファイルとプラットフォーム共通のヘッダーファイルがあることに注意する。


ライブラリの参照先の変更
プロパティの[構成プロパティ]-[リンク]-[全般]-[追加のライブラリ ディレクトリ]での設定を変更を変更する。
32bit および 64bit とプラットフォーム別のライブラリファイルがあることに注意する。



■ コンパイルエラー、リンクエラー

BRX では、 ObjectARX のクラスや関数をサポートしていないものがあるため、ビルド時にコンパイルエラーやリンクエラーになったクラスや関数があります。この場合、同等の結果が得られる別の方法を考える必要があります。

■ 移行対象外のObjectARXプロジェクトについて

BRX の移植対象は ObjectARX2013~2014 となります。これは、コンパイラが Visual C++ 2010(SP1) のためです。
ObjectARX2012以前 または ObjectARX2015以降では Visual C++ のバージョンが違うためプログラムプロジェクトをそのまま使うことはできません。
移植する場合は、ObjectARX2007~2009 のプロジェクトを作成し、ソースコードをマージするようにしてください。
ObjectARX2007~2009がなく、プロジェクトが作成できない場合は、BricsCADのインストールフォルダの API\brx\brxSample フォルダにサンプルソース(プロジェクト含む)ありますので、これを参考にプロジェクトを作成してください。
ObjectARX2006 以前のARXプログラムでは、ANSI対応のソースコードになっています。BRX はUNICDODE対応のソースコードになりますので、文字定数や変数、関数は、UNICODE対応に変更してください。

■ システム変数

BricsCADでは、AutoCADの持つシステム変数の中でサポートしていないものがあります。
また、サポートはしているが、AutoCADでは読み書きできるが、BricsCADでは読み込み専用になっているものもあります。
acedSetVar()関数やacedGetVar()関数などを使っている部分について、システム変数の有無などを確認してください。

例えば、
システム変数[DTextEd](AutoCAD2010以降)はサポートしていません。
システム変数[SDI]は、BricsCADでは読み込み専用のシステム変数となり、常に [0] を返します。

■ コマンド

BricsCADでは、AutoCADの持つコマンドの中でサポートしていないものがあります。
また、サポートはしているが、AutoCADとは引数やオプションが異なるものもあります。
acedCommand()関数やacedCmd()関数、sendStringToExecute()関数を使っている部分について、コマンドの有無などを確認してください。

例えば、
コマンド[SaveAs]では、テンプレートとして保存するためのオプション[T]や標準仕様として保存するためのオプション[S]はサポートしていません。