2015年7月23日木曜日

Dll内のクラス丸ごと利用の注意点

"*.dll"ファイル内のクラスを丸ごと利用しようとした場合,"*.def"ファイルを使った方法では以下の2点が厄介です。
  1. 個別にクラス内関数・変数を"*.def"ファイルに記入する必要がある
  2. クラス内関数・変数の名前は装飾名になってしまう。
 特に,上記2が厄介です。装飾名を調べるために"*.map"ファイルを作成し,ファイル内を探索する必要があり,クラスの規模が大きくなるほど労力も増加します。四則演算のクラス程度でも探すのが面倒と感じました。

ですので,素直に"__declspec(dllexport)"を利用したほうが楽です。 クラスそのものがエクスポートされるので、関数をひとつずつエクスポートする必要がなくなります。

次回はクラスを丸ごとインポートして,利用するプログラムを作成しようと思います。

0 件のコメント:

コメントを投稿