我的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);
我真的很茫然這裏。如果需要,我可以提供更多細節。
在此先感謝。
請編輯你的問題,而不是寫一個答案。 – avakar 2010-12-16 11:26:26