У меня очень странная проблема с моим приложением MFC.Подробности:
- Построен с использованием Microsoft Visual Studio 2008 (версия 9.0.30729.1 SP) под Windows Vista SP1 Ultimate.
Это приложение.ему около 15 лет, и он видел большинство версий VS.
У меня есть отдельный тестовый компьютер с: Windows XP Pro SP3, Vista Home Premium, 7 Ultimate.
Конечно, я установилVC ++ распространяется на все Windows.
Теперь я попытаюсь описать проблему:
Программа использует классы 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);
Я действительно в замешательстве.Я могу предоставить более подробную информацию, если это необходимо.
Заранее спасибо.