我有msvc 10.0構建的庫(動態,帶隱式鏈接),導出類和STL容器。它構建爲發佈版和調試版(兩個版本)。這不是我的,所以我沒有源代碼。我有一個簡單的應用程序,從這個庫調用方法(也由msvc 10.0構建,所以,我猜,STL和編譯器版本的兼容性不應該存在問題)。調試vs發佈庫版本與調試/發佈客戶端應用程序具有不同的行爲
- 如果構建爲調試鏈接的應用程序調試庫的版本 - 一切正常,假設。
- 如果應用程序構建爲發佈鏈接發佈版本的庫 - 一切正常,假設。
- 如果應用程序內置的調試鏈接庫的發行版本 - 似乎有庫邏輯中的錯誤,它會拋出異常length_error文本「矢量過長」
爲什麼能出現這種情況,如果它完美工作沒有任何變化,只是如果應用程序有不同的版本/調試設置?
我沒有改變任何默認的IDE設置,選擇「放行」 /「調試」。
混合構建類型從來就不是一個好主意。 –
是的,但有時我們沒有調試庫版本。但我們必須調試我們的應用程序,並將其構建爲「調試」。我從未遇到過這樣的問題。如果你可以建議哪裏可以解決問題,那會很好。 – Arkady