2010-12-16 69 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版本中它會崩潰嗎?

相關問題