2016-08-24 51 views
-2

最近我將我的應用程序從Visual Studio 2013遷移到Visual Studio 2015.在DEBUG模式下一切正常,但如果切換到RELEASE模式,此錯誤將彈出: MyApp.exe中0x773F7FB2(ucrtbase.dll)未處理的異常:一個無效參數被傳遞給一個認爲無效參數致命的函數「(在我的應用程序中,我傳遞了一個指針指向列表)。什麼可能是這個錯誤的原因? 編輯: 當我使用VS 2013一切正常。這不是VS 2015的問題嗎?應用程序在DEBUG模式下正常工作,但RELEASE模式顯示錯誤

+1

顯示您的代碼。您可能很幸運,它在調試模式之前/之前工作。 –

+1

可能未定義的行爲,請調試程序的發行版本。 –

+2

通常這意味着你在某個地方使用了未初始化的變量,但它幾乎可以是任何東西。 Debug將未初始化的變量設置爲已知值,但Release版本會將其保留爲隨機值。 –

回答

3

如果您想要正確的答案,您應該發佈您的代碼。沒有它,我(我們)所能做的就是猜測。

在任何情況下;有許多許多版本和調試模式之間的區別。除了啓用/禁用優化之外,局部變量通常在調試版本中初始化爲零(或默認初始化),但由於標準沒有強制執行,所以發佈版本(優化版本)不會受到影響,因爲代價很高。這只是一個例子 - 還有更多 - 但它是我的猜測咬你。

在任何情況下;看起來你的程序包含未定義的行爲 - 這基本上意味着你不能相信它做任何事情正確,優化編譯器只是比它在調試模式下的利用更多。

不要編寫包含未定義行爲的破損程序!它咬。

相關問題