LoadString(AFX_IDP_PARSE_INT)在mfc exe中失败(不在dll中)

时间:2012-08-08 10:02:57

标签: c++ mfc

AFX_IDP_PARSE_INT是标准MFC错误消息的id(它在afxres.h中定义),但是在我的项目中它无法加载,这意味着LoadString返回FALSE,{ {1}}返回GetLastError,CString保持为空。

即使我尝试在InitInstanse的开头加载它,也会发生这种情况:

ERROR_RESOURCE_NAME_NOT_FOUND

这个相同的代码适用于一个新项目,但是 - MFC的链接(我静态链接到它),同样的WINVER,我尝试使它与我的旧项目类似,但我无法重现错误在一个新开始的项目上。

1 个答案:

答案 0 :(得分:0)

看起来您的资源无法正确构建。确保您的.rc文件也包含所有AFX资源。首先,我尝试从头开始构建一个全新的项目,测试加载字符串,然后看看默认的.rc文件是什么样的。

它应该包含一个名为'afxres.rc'的文件,即你的RC应该包含这样的内容:

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
#include "res\MyRes.rc2"  // non-Microsoft Visual C++ edited resources
#include "afxres.rc"         // Standard components
#include "afxprint.rc"       // printing/print preview resources
#endif