MFC 无法在 dbcore.cpp 中加载错误字符串资源

Posted

技术标签:

【中文标题】MFC 无法在 dbcore.cpp 中加载错误字符串资源【英文标题】:MFC can't load error string resources in dbcore.cpp 【发布时间】: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 文件似乎可行。谢谢。 【参考方案1】:

根据 Joe Willcoxson 的评论,将添加的行移至我的 RC2 文件解决了该问题。我现在拥有了必要的数据库资源,并且仍然可以在资源编辑器中编辑和保存资源。

【讨论】:

以上是关于MFC 无法在 dbcore.cpp 中加载错误字符串资源的主要内容,如果未能解决你的问题,请参考以下文章

如何在MFC中加载真彩色的图像资源啊

在 C# 中加载 mfc DLL

如何使用 MFC 从文件中加载图像

MFC中加载位图

MFC中加载位图

无法在本机反应中加载静态图像