0

我有这样的课

class A_DLL A
{
   ...
   template <class T> someFunction(const T &v);
}

在库 a.dll 中。A_DLL 是__declspec(dllexport)在构建 a.dll 和__declspec(dllimport)使用 a.dll 时。

问题是当我尝试在与 a.dll 链接的某些可执行模块中使用“someFunction”时,它可以工作。但是,当我在其他一些库(b.dll)中使用它时,它会给我一条关于未解决的外部(someFunction 和其他模板)的错误消息。显然我不应该__declspec在模板上使用,但是如何创建一个类__declspec呢?

4

1 回答 1

4

您可以使用如下声明:

template class A_DLL MyTemplateClass<int>;

该语句将生成模板类实例化并将其导出到您正在构建的 DLL 中(或根据预处理器设置 A_DLL 的方式导入它)。

您也可以点击此链接获取更详细的说明。

于 2012-05-15T11:41:11.257 回答