【问题标题】:Debug Error: String Resource 7176 was not found调试错误:找不到字符串资源 7176
【发布时间】:2015-12-23 09:16:45
【问题描述】:

我已将我的项目从 VC++.NET 2003 升级到 VS2010。我收到调试错误:找不到字符串资源 7176。我可以看到字符串表包含字符串资源 7176 的字符串,但是当我调用 Custom_MessageBox() 时仍然显示错误,这在同一项目的其他模块中运行良好。

在TestResource.rh中

#define IDS_SHOWWARNING_TEST        7176

在TestResource.rc中

#include "DevControl.rh"

STRINGTABLE
BEGIN
IDS_SHOWWARNING_TEST           "Test1"
END

在TestResource.cpp中

 BOOL TestFunc(hParentWnd)
{
     LPCTSTR myString = "Hello"
     Custom_MessageBox( hParentWnd,
                  MAKEINTRESOURCE(IDS_SHOWWARNING_TEST),
                  MB_OK | MCC_INFORMATION );
 }

如果我通过 myString 代替 MAKEINTRESOURCE(IDS_TEST),那么它可以完美运行。

请找到Custom_MessageBox() 的定义。如果我看到 pszText 的值,它会显示错误的指针。 MAKEINTRESOURCE 无法评估 IDS_SHOWWARNING_TEST。不知道是什么原因。

const int CUS_RETURN_ERROR        = (int)0xFFFF;

int cdecl Custom_MessageBox( HWND hwndOwner, LPCTSTR pszText, UINT uStyle, ... )
{
   // handle variable parms
   va_list sVarArgs;
   va_start(sVarArgs, uStyle);

   if (!pszText)
      return CUS_RETURN_ERROR;

   CMDMsgDialog Dlg;
   int nReturn = Dlg.MessageDialog(hwndOwner, pszText, uStyle, sVarArgs);

   va_end(sVarArgs);
   return nReturn;
}

【问题讨论】:

  • Custom_MessageBox 在做什么?它可以处理字符串资源吗?您的代码是否调用 AfxSetResourceHandle?字符串可以在InitInstance开头加载吗?
  • 如果你调用MessageBox而不是`Custom_MessageBox`会发生什么?
  • 你需要显示Custom_MessageBox的源代码,因为那是失败的函数。
  • 我已将“hParentWnd”替换为“AfxGetMainWnd()->GetSafeHwnd()”,现在它工作正常。不确定为什么?
  • @S.Shil 显示您如何称呼TestFunc

标签: visual-studio-2010 visual-c++ mfc


【解决方案1】:

您已在 TestResource.rh 中定义了 IDS_SHOWWARNING_TEST:

#define IDS_SHOWWARNING_TEST        7176

但是,在您的 TestResource.rc 中包含不同的头文件:

#include "DevControl.rh"

宏 IDS_SHOWWARNING_TEST 可能也在该文件中定义,具有不同的值。

【讨论】:

  • 我已修改此代码以放在社交网站上,因为我不想显示实际代码,所以我错过了将“DevControl.rh”替换为 TestResource.rh。这只是一个例子。
  • 我只能看到您发布的代码,而不是您计算机上的代码 :) 无论如何,错误清楚地表明您确实正确传递了字符串 ID(正如您所期望的那样,它是 7176,并且这就是错误消息中的内容)。这意味着具有该 ID 的字符串在所搜索的资源中为 NOT。您是否有多个资源模块(在 exe 和 dll 中)?您有多种语言资源吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-21
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 2011-08-22
  • 1970-01-01
相关资源
最近更新 更多