MS Visual C++中的dllimport和模板
dllimport and templates in MS Visual C++
我有这样的类
class A_DLL A
{
...
template <class T> someFunction(const T &v);
}
在图书馆 A.dll。A_DLL在构建 a 时__declspec(dllexport)
.dll在使用 a.dll 时__declspec(dllimport)
。
问题是当我尝试在链接到 a 的某个可执行模块中使用"someFunction"时.dll它可以工作。但是,当我在其他库(b.dll)中使用它时,它会给我一条关于未解析的外部(someFunction和其他模板)的错误消息。显然我不应该在模板上使用__declspec
,但是如何用__declspec
制作一个类呢?
您可以使用如下声明:
template class A_DLL MyTemplateClass<int>;
此语句将生成模板类实例化并将其导出到正在生成的 DLL 中(或根据从预处理器设置A_DLL的方式导入它)。
您也可以点击此链接以获取更详细的说明。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 将字符串存储在c++中的稳定内存中
- 文本文件中的单词链表
- 递归函数计算序列中的平方和(并输出过程)
- 如何从C++中的依赖类型中获得它所依赖的类型
- C++中的"inline"关键字
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 用C++中的一个变量定义一个常量
- error dllimport 函数的定义不允许在一个特定的联合中,而其他类、结构和联合将按预期导出
- 绕过 Windows 中的 __declspec(dllimport) 到 Linux 项目的转换
- 在.NET Core中是否有与DllImport等效的Linux?
- 我在 DLLImport 中使用的引用中看不到 Dll
- 我们可以将所有"int"参数和返回类型替换为 DllImport 方法签名中的"IntPtr"吗?
- MS Visual C++中的dllimport和模板