我有以下问题:我在 C++ 中创建了一个 DLL,其模板类定义如下:
template <class T>
class myClass {
public:
//! Constructor
myClass(int size = 10);
//! Destructor
~myClass();
someAttributes ... ;
}
我想导出它,所以我定义如下:
template class __declspec(dllexport) myClass<double>;
因为 - 我读过 - 在 Visual C++ 中,您不能导出模板,而只能导出它们的显式初始化。这种方式一切正常,我可以在新的 Visual C++ 代码中导入 DLL。现在:我是否必须为我需要的每种类型(myClass、myClass 等)导出显式实例化?还是有更好的方法 - 不那么天真 - 做到这一点?如何在 VB.NET 项目中导入我的模板类?有办法吗?还是我必须创建一个编组结构,然后在运行时将其转换到我的模板类中?
谢谢你们!