我可以有 C++ 共享库,其中有返回的导出函数std::vector<t>
问问题
110 次
2 回答
4
是的,提供 DLL 和使用它的 C++ 代码
- 使用相同的 C++ 编译器构建
- 正在使用相同版本的 STL(这可能对 STL 调试定义也很敏感)
- 正在使用相同的共享运行时库(即共享、调试与发布、单线程与多线程、相同版本),以便在同一内存堆上分配和释放对象
那么它应该可以正常工作。其中一些可能有一点余地,但总的来说,最好是安全的并尽可能保持一切相同。
于 2012-04-20T11:49:15.020 回答
1
如果 instd::vector<t>
是t
未知类型,即如果您想将 a 存储template
在共享库中,而不是某些固定模板实例化,则答案是否定的。
需要一种将类型t
注入共享库的方法,但没有。
在代码方面:
// This is NOT possible:
template <typename T>
std::vector<T> something () {...}
// This IS:
std::vector<int> something () {...}
于 2012-04-20T13:49:34.900 回答