我有msvc 10.0构建的库(动态,带隐式链接),导出类和STL容器。它构建为发布版和调试版(两个版本)。这不是我的,所以我没有源代码。我有一个简单的应用程序,从这个库调用方法(也由msvc 10.0构建,所以,我猜,STL和编译器版本的兼容性不应该存在问题)。调试vs发布库版本与调试/发布客户端应用程序具有不同的行为
- 如果构建为调试链接的应用程序调试库的版本 - 一切正常,假设。
- 如果应用程序构建为发布链接发布版本的库 - 一切正常,假设。
- 如果应用程序内置的调试链接库的发行版本 - 似乎有库逻辑中的错误,它会抛出异常length_error文本“矢量过长”
为什么能出现这种情况,如果它完美工作没有任何变化,只是如果应用程序有不同的版本/调试设置?
我没有改变任何默认的IDE设置,选择“放行” /“调试”。
混合构建类型从来就不是一个好主意。 –
是的,但有时我们没有调试库版本。但我们必须调试我们的应用程序,并将其构建为“调试”。我从未遇到过这样的问题。如果你可以建议哪里可以解决问题,那会很好。 – Arkady