我的c ++项目适用于vc ++ 2008,但不适用于vc ++ 2010

Bon*_*Bon 2 c++ dll

我有两个vc ++ dll项目,它们将生成两个dll.一个

vector<vector<string>> 
Run Code Online (Sandbox Code Playgroud)

对象将从一个dll传递到另一个dll.这两个项目都配置为多线程调试DLL.两者都可以在vc ++ 2008和vc ++ 2010上成功编译.但是,只有从vc ++ 2008项目生成的dll才能工作.dll将由在MSDEV 6.0版下编译的另一个dll使用.所以我的问题是为什么

vector<vector<string>>
Run Code Online (Sandbox Code Playgroud)

对象无法在vc ++ 2010构建的dll之间传递?谢谢:)

Tim*_*mbo 8

如果计划对DLL使用不同的编译器版本以及使用它的代码,则不能在DLL接口中使用STL类型.

向量和字符串的实现可能不同(在您的情况下它们似乎也是如此),您将遇到这样的问题.