2016-04-21 9 views
0

我跑在釋放模式「無法創建一個空文件」下的MFC/SDI的Visual Studio應用程序和2008年MFC錯誤「無法創建一個空文件」,在發行模式下

我得到的錯誤只要。我發現有問題的代碼是我在下面給你看的。僅當輸入參數是電子郵件字符串,即[email protected]時,纔會觸發該錯誤。另外在調試模式下它工作得很好。

有人可以給我一個解釋爲什麼發生這種情況?

void CUtils::RemoveEndingSlash(CString *str) { 


    if (str->GetAt(str->GetLength()-1) == '/') { 

     *str = str->Left(str->GetLength() - 1); 

    } 

} 

確切違規代碼是

str->GetAt(x). 

我解決了這個問題使用輸入參數值通過由代替參考改變上述代碼。

Regards,

回答

0

好的解決了。

緩衝區溢出,因爲某些調用者在傳遞空字符串之前。

我沒有檢查空字符串,因此我得到了緩衝區溢出。

相關問題