我有一个应用程序,我试图将其移植到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位中表现不同。