64位的CString问题

时间:2014-03-26 06:23:22

标签: c++ 32bit-64bit

我有一个应用程序,我试图将其移植到64位。编译成功,最后我的应用程序在64位。我遇到的问题是我的应用程序偶尔以64位崩溃。

请看下面的示例

void main()
{
// some processing
fun1();
}
void fun1()
{
Cstring str=_T("This is a CString in a console application!");
// some procession which doesnt involve Cstring
}

所以当fun1返回时,会调用Cstring的析构函数来调用heapfree,它会抛出异常而应用程序崩溃。

但是,当我将CString的内容更改为包含少于32个字符时,它不会抛出异常并且应用程序按预期工作。

32位中不存在此问题。你能否告诉我为什么cstring在64位中表现不同。

0 个答案:

没有答案