【问题标题】:Sudden "Cannot change standard MFC resource!" error突然“无法更改标准 MFC 资源!”错误
【发布时间】:2016-12-18 23:59:37
【问题描述】:

我有一个旧的 MFC 应用程序,我一直在使用 Visual Studio Pro 2015(更新 3)进行更新。突然之间,我开始收到以下错误。

只要我尝试保存资源,无论是对话框、功能区还是版本资源,都会发生错误。

出错后,我收到一条消息说它无法保存文件,然后打开 保存 对话框以提供备用文件名/位置来保存 myapplication.rc。如果我选择同一个文件,我会收到一个提示,说文件名已经存在,并询问我是否要覆盖它。如果我回答是,我会收到与以前相同的错误消息。

我可以找到很少的信息。显然,它无法保存我的资源文件,但为什么呢?任何提示表示赞赏!

【问题讨论】:

  • 猜测,您有一个或多个使用标准 MFC 东西的资源(图标?对话框?.rc 文件?)。新的 VS 正在尝试将该资源更新到新版本,并在尝试保存时失败。查看您的资源文件,看看是否有任何东西引用指向旧 VS 安装的路径(可能在文本编辑器中查看 .rc 文件,而不是资源编辑器)。

标签: c++ visual-studio mfc resources


【解决方案1】:

原来问题是由于最近的变化。我添加了使用CDatabase 访问旧MDB 文件的代码。但是,当 dbcore.cpp 尝试加载资源字符串以显示错误时,我遇到了错误。 (MFC 内部错误:无法从资源加载错误字符串。

经过研究,我通过在我的应用程序的 RC 文件中添加以下行来解决这个问题。

// Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#ifndef APSTUDIO_INVOKED
#include "targetver.h"
#endif
#include "afxres.h"
#include "afxdb.rc" <------ ADDED THIS LINE HERE!!!

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

如果我删除该添加的行,那么我的问题就会消失。

不幸的是,这也意味着dbcore.cpp中的错误再次无法加载错误消息资源。所以我还有一个问题。但我已经发布了new question on that

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-07
    • 2011-09-04
    • 2016-05-31
    • 1970-01-01
    相关资源
    最近更新 更多