c++ - Debug vs release library version has different behavior with debug/release client application -
I have a library (dynamic with built-in linking created by MSVC 10.0), which exports sections and STL containers. It was created as a release and made as debug (two versions). This is not mine, so I do not have a source code.
I have a simple application, which is also created by the call method (MSVC 10.0 from this library, so I think there should be no problem
- if debug Link is created as a version of the debug library - everything seems to work, as it seems.
- The release version of the App Library built as a release link - everything works, As it seems.
- If the Library The app created in the form of an IBB link release version - appears to be a mistake inside the library logic, it throws the exception length_error with the text "The vector is too long
Why can it be so, if it works entirely without any changes, just because the app has a separate release / debug setting?
Selecting "Release" / "debug" does not change any default IDE settings.
Debug and release version of classes and STL containers can have different memory layouts, including different variables. The code handling layout fails if it is asked to process it on other layouts.
Comments
Post a Comment