【发布时间】:2016-12-19 01:14:49
【问题描述】:
我最近更新了一个旧的 MFC 应用程序,以包含使用 CDatabase 访问旧 MDB 的代码。
这可行,但是当发生内部错误时,我在 dbcore.cpp 中得到一个断言,它无法加载错误字符串资源。
经过一番研究,我在我的应用程序的 RC 文件中添加了以下行。
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#ifndef APSTUDIO_INVOKED
#include "targetver.h"
#endif
#include "afxres.h"
#include "afxdb.rc" // <<======= I ADDED THIS LINE HERE!!!
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
这解决了问题。我现在收到了关于内部错误的有意义的消息。但是,现在如果我尝试使用资源编辑器保存我的资源文件,则会出现错误。
我怎样才能获得有意义的内部数据库消息并且仍然能够将更改保存到我的资源文件?
【问题讨论】:
-
您是否尝试将其添加到 targetver.h 之后,使其位于 #ifndef APPSTUDIO_INVOKED 块中?或者尝试将其移动到您的 .rc2 文件中? (通常,MFC 项目有一个 YourProject.rc2 文件。(YourProject 只是项目名称的别名。)
-
@JoeWillcoxson:将其移至 RC2 文件似乎可行。谢谢。
标签: c++ visual-studio mfc cdatabase