次の問題があります。次のようなテンプレートクラス定義を使用して、C++でDLLを作成しました。
template <class T>
class myClass {
public:
//! Constructor
myClass(int size = 10);
//! Destructor
~myClass();
someAttributes ... ;
}
エクスポートしたいので、次のように定義しました。
template class __declspec(dllexport) myClass<double>;
なぜなら-私が読んだ-VisualC++では、テンプレートをエクスポートすることはできず、明示的な初期化のみを行うことができます。このようにしてすべてが正常に機能し、DLLを新しいVisualC++コードにインポートできます。今:必要なすべてのタイプ(myClass、myClassなど)の明示的なインスタンス化をエクスポートする必要がありますか?それとも、それを行うためのより良い方法がありますか?テンプレートクラスをVB.NETプロジェクトにインポートするにはどうすればよいですか?方法はありますか?または、マーシャリング構造を作成し、実行時にテンプレートクラスで変換する必要がありますか?
皆さん、ありがとうございました!