关于c ++ 11:跨越边界使用std :: vector的C ++

C++ using std::vector across boundaries

本问题已经有最佳答案,请猛点这里访问。

assuming EXE和DLL是编译和使用的STL版本。如果我使用std::向量和使用在我的文件到备用内存区。然后,我把它的DLL的参考。

我推回到_ DLL添加到我的一元向量。如果我不超过目前的能力,是新分配的内存单元中的DLL或EXE中吗?


这通常是个坏主意。

当您调用push_back时,可以复制您要添加到向量中的任何对象。不能保证该对象的大小(除其他外)与通过std::vector::reserve在.exe中保留的大小相同。这两个二进制文件可能是用不同版本的STL编译的。


两者都不。

它被分配到进程的虚拟内存空间,其代码是.exe.dll的组合。