XOPの作り方
(XOP toolkitとMicrosoft Visual C++ 6.0を用いて)
by Tsuyoshi Inoue
XOPは、Igor Proに自分なりの関数を組み込むシステムです。
なかなか壁が高そうですが、いったん動いてしまえば、手軽で便利なシステムです。
作り方は、基本的にはXOPのマニュアルに書いてあるのですが、
その通りには行かない部分もあります。
以下はXOP作り方の押さえるべき要点をまとめたものです。
- Visual C++でプロジェクトを作成。
具体的には、ファイル->新規作成->Win32Dynamic Link Libraryを選び、名前と保存ディレクトリを名前をつけ、そんで新規にワークスペースを作成をチェック、Win32プラットフォームを選択する
そして次に 空のDLLプロジェクトを選ぶ
- 必要なソースファイル、ヘッダファイル、XOPresource.rc を新しくできたディレクトリにコピーする。
必要なファイルのリストは下記の通り。
・main.cpp (エントリポイント、select case とか xop 特異的なソースファイル)
・xop_header.h
・xop_resource.rc (この二つはxop 関数を定義するところ)
・resource.h
・resource.rc (ここはバージョン情報のリソースが入ってる)
それ以外に必要なものがあれば含めること。
- プロジェクト->プロジェクトへ追加 -> ファイル でこれらのファイルをプロジェクトに加える。
ただし .rc ファイルはひとつしか入れることができない。それゆえ resource.rc
しか加えたらだめ。xop_resource.rc は加えたらいけない。これ の加え方は後で述べる。つまり4つのファイルを加える。
- 次に xop 専用の初期設定をする。
プロジェクト -> 設定 を選ぶとタブベースの設定が出てくる。
a, まず左側にあるツリーでワークスペースをフォーカスして(ファイルとかでなく)、次に 左上の Setting For を "All Configuration" にする。
b, デバッグ ->一般l….. デバッグセッションの実行可能ファイルで Igor.exe
へのフルパスを指定
c, C/C++ -> コード生成 ->使用するランタイム ライブラリ: シングルスレッド*
を選択
-> 構造体メンバのアライメントは、2 byte を選択
->プリプロセッサ -> インクルードファイルのバスは、XOPsupportディレクトリへのフルパス(ここにXOPのすべてがある)
d, リンク -> 一般 ->出力ファイル名: Debug/希望ファイル名.xop とする(Debug/
は相対パス指定)
-> オブジェクト/ライブラリモジュール のところにはversion.lib を加える
-> インプット ->無視するライブラリ: libcd.lib をignore する
e, リソース -> インクルードファイルのパスにはXOPsupportディレクトリへのフルパス
・ ・・・・そしてOKを押す
- ビルド->アクティブな構成の設定 -> Win32debug をえらぶ。
- プロジェクト->プロジェクトへ追加->ファイル から XOPsupport の中にある
IGOR.lib と XOPSupport x86.lib を加える
- XOP用リソースファイル (xop_resource.rc) は resource.rc とかぶるため(二つ以上のリソースファイルはプロジェクトに含めることができない)、以下のようにしてインクルードする
表示->インクルードファイルの設定-> コンパイル時に追加するファイル
に include "xop_resource.rc" と加えることによって達成される(これを設定するときに文句をいってくるが無視してよい)
これで終了。
- あとこれは超超注意!!!
・ ・・・関数の加え方・・・・・・・
static library を作るとき、最初通常のライブラリを作ったあと、 Igor_XOP
用のライブラリを作る。そのIGOR_XOP用のライブラリを作るときのパネルの設定でC/C++
pane の Code Generation において Struct Member alignment を絶対にここも
2-byte にしないとだめ。(構造体を使ったライブラリではすべてバグる)