仅在发布模式下MFC错误“无法创建空文档”

时间:2016-04-21 16:44:49

标签: c++ visual-c++ mfc runtime-error

我在MFC / SDI和Visual Studio 2008下运行一个应用程序。

我仅在发布模式下收到错误“无法创建空文档”。我发现有问题的代码是我在下面给你看的。仅当输入参数是电子邮件字符串即xyz@yahoo.com时才会触发错误。同样在调试模式下,它工作得很好。

有人可以解释一下为什么会这样吗?

void CUtils::RemoveEndingSlash(CString *str) {


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

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

    }

}

确切的违规代码是

str->GetAt(x).

我解决了使用输入参数按值而不是通过引用更改上述代码的问题。

此致

1 个答案:

答案 0 :(得分:0)

好的解决了。

缓冲区溢出,因为一些调用者在传递空字符串之前。

我没有检查空字符串,因此我得到缓冲区溢出。