【问题标题】:MFC application crashes on Windows XPMFC 应用程序在 Windows XP 上崩溃
【发布时间】:2010-12-16 11:18:34
【问题描述】:

我的 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);

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

提前致谢。

【问题讨论】:

    标签: c++ mfc visual-c++


    【解决方案1】:

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

    显然……

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2023-03-22
        • 2011-11-02
        • 1970-01-01
        • 2015-09-02
        • 1970-01-01
        • 1970-01-01
        • 2012-07-17
        • 1970-01-01
        • 2011-11-07
        相关资源
        最近更新 更多