我有msvc 10.0构建的库(动态隐式链接),它导出类和STL容器。它构建为发布和调试(两个版本)。它不是我的,所以我没有源代码。
我有一个简单的应用程序,它调用来自这个库的方法(也是由msvc 10.0构建的,所以,我想,STL和编译器版本的兼容性应该没有问题。)
如果应用程序具有不同的发布/调试设置,为什么会在没有任何更改的情况下完美地工作?
我没有更改任何默认的IDE设置,选择“release”/“debug”。
答案 0 :(得分:0)
类和STL容器的调试和发布版本可以具有不同的内存布局,包括不同的变量。如果要求处理其他布局,则编译的代码假设一个布局将失败。