繁体   English   中英

MFC应用程序在Windows XP上崩溃

[英]MFC application crashes on Windows XP

我的MFC应用程序有一个非常奇怪的问题。 细节:

  • 在Windows Vista SP1 Ultimate下使用Microsoft Visual Studio 2008(版本9.0.30729.1 SP)构建。

这个程序。 大约15岁,已经看过大多数VS版本。

我有一个单独的测试计算机,其中包括:Windows XP Pro SP3,Vista Home Premium,7 Ultimate。

当然,我在所有Windows上都安装了可再发行的VC ++。

现在,我将尝试描述问题:

该程序使用MFC类来处理CArchive对象。 用户可以创建一个新项目,该项目包含一个或多个工作表,这些工作表包含可能包含文本,图片或两者的单元格。 例如带有8x8网格的工作表。 可以将项目保存到磁盘:MySheet.K01,MySheet.K02等。使用CMultiDocTemplate查看工作表。

我创建了该项目的一个分支,用于创建可以将这些文件转换为另一种格式的程序。 我使用AllocConsole()使其成为控制台应用程序。

当我测试该程序时,结果是它可以在Windows 7上正常运行,部分在Windows Vista下运行,而在Windows XP上则完全崩溃。

我已经排除了该程序是否在Windows XP下编译的可能性。

我认为这是出了什么问题:

CFile   myFile;
CMyDoc    *pDoc = (CMyDoc *)m_pDocViewTemplate->CreateNewDocument(); // Get a CDocument and cast it
CFileException myError;
TCHAR   *arcFileName = new TCHAR[MAX_PATH];

BOOL bTmp = myFile.Open(arcFileName, CFile::modeRead, &myError);
char lpszError[1024];
myError.GetErrorMessage(lpszError, 1024, 0);
_cprintf(lpszError);
_cprintf("\n");
if(!bTmp)
{
 _cprintf("ERROR: Unable to open the file!\n");
 return;
}

myFile.SeekToBegin();
CArchive myArc(&myFile, CArchive::load, 8192, 0);
myArc.m_bForceFlat = TRUE;
myArc.m_pDocument = pDoc;

pDoc->Serialize(myArc);

我真的很茫然。 如果需要,我可以提供更多详细信息。

提前致谢。

arcFileName将包含类似以下内容:“ C:\\ MyProject \\ MySheet.K01”

明显...

从XP上的IDE运行时会崩溃吗? 您会遇到什么崩溃? 在Debug和Release版本中会崩溃吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM