2016-12-19 35 views
0

我有一箇舊的MFC應用程序,我最近更新了其中包含使用CDatabase來訪問舊的MDB的代碼。MFC無法在dbcore.cpp中加載錯誤字符串資源

這有效,但是當發生內部錯誤時,我在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 

這解決了這個問題。我現在得到了一個有意思的內部錯誤消息。但是,現在如果我嘗試使用資源編輯器保存資源文件,則會出現錯誤。

enter image description here

我怎樣才能獲得有意義的內部數據庫中的信息和仍然能夠將更改保存到我的資源文件?

+0

您是否嘗試添加移動到targetver.h之後,而不是它在#ifndef APPSTUDIO_INVOKED塊?或嘗試將其移動到您的.rc2文件? (一般來說,MFC項目有一個YourProject.rc2文件(YourProject只是你的項目名稱的別名) –

+0

@JoeWillcoxson:將它移動到RC2文件似乎工作,謝謝。 –

回答

0

Per Joe Willcoxson的評論,移動添加的行到我的RC2文件解決了這個問題。我現在擁有必要的數據庫資源,而且我仍然可以在資源編輯器中編輯和保存資源。