2010-12-16 97 views
0

我的MFC应用程序有一个非常奇怪的问题。详细信息:MFC应用程序在Windows XP上崩溃

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

此应用程序。大约15岁,并且看到了大多数VS版本。

我有一个单独的测试电脑:Windows XP专业版SP3,Vista家庭高级版,7旗舰版。

当然,我在所有Windows上安装了VC++ redistributable。

现在,我会尽量说明问题:

程序使用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); 

我真的很茫然这里。如果需要,我可以提供更多细节。

在此先感谢。

回答

0

arcFileName将包含类似: “C:\ MyProject的\ MySheet.K01”

显然...

+2

请编辑你的问题,而不是写一个答案。 – avakar 2010-12-16 11:26:26

0

从XP IDE中运行时崩溃?你会得到什么崩溃?在Debug和Release版本中它会崩溃吗?

相关问题