ラベル dll の投稿を表示しています。 すべての投稿を表示
ラベル dll の投稿を表示しています。 すべての投稿を表示

2015年7月23日木曜日

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

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

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

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

2015年7月18日土曜日

DLLファイルの利用

今回は,"SayHelloWorld"というプロジェクト名で作成します。

「新しいプロジェクト -> Visual C++ -> Win32 コンソール アプリケーション」を選択し,任意のプロジェクト名を入力し,次へ。「アプリケーションの選択 -> アプリケーションの種類」で,"コンソールアプリケーション"を選択して完了をクリック。

*.dllファイルの利用には4手順必要である。

2015年7月17日金曜日

DLLの作成

DLLを作成し,DLLを読み込んで動作するプログラムを作成する。

今回は,Qtで使用することを前提としています。したがって,"*.libファイル"は同梱できません。したがって,今回は明示的なリンクを採用する。