C++ STL 或模板和 DLL
C++ STL or Template and DLL
我可以C++共享库吗,其中有导出的函数返回std::vector<t>
是的
,提供了使用它的 DLL 和C++代码
- 使用相同的C++编译器构建
- 正在使用相同版本的 STL(这可能对 STL 调试定义也很敏感)
- 使用相同的共享运行时库(即共享、调试与发布、单线程与多线程、相同版本),以便在同一内存堆上分配和释放对象
那么它应该可以正常工作。其中一些可能会有一点回旋余地,但总的来说,最好是安全,如果可能的话,保持一切相同。
如果在std::vector<t>
中t
是未知类型,即如果您想将template
存储在共享库中,而不是一些固定的模板实例化,答案是否定的。
需要一种方法将类型 t
注入共享库,但没有。
在代码方面:
// This is NOT possible:
template <typename T>
std::vector<T> something () {...}
// This IS:
std::vector<int> something () {...}
相关文章:
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 挂起和取消挂起一个文件DLL
- 为什么这个运算符<重载函数对 STL 算法不可见?
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 导入库可以跨dll版本工作吗
- 从C++dll访问C#中的一行主要参数
- 链接到自行创建的dll失败
- 在C应用程序中运行C++(带有STL)函数
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 使用2个键的cpp-stl::优先级队列排序不正确
- 从DLL导出STL类-为什么返回类型没有警告
- C++ STL 或模板和 DLL
- 在 DLL 项目中使用 STL C++
- pimpl STL and DLL
- 通过dll边界传递对STL矢量的引用
- 当从DLL导出STL std::basic_string模板时,我得到一个LNK2005错误
- 将STL对象传递给DLL
- 用.net中的stl容器调用c++ dll
- 导出DLL接口中包含相同类的STL类成员
- 如何在我的dll接口或ABI中使用标准库(STL)类