调试错误:找不到字符串资源7176

时间:2015-12-23 09:16:46

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

我已将我的项目从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;
}

1 个答案:

答案 0 :(得分:1)

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

#define IDS_SHOWWARNING_TEST        7176

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

#include "DevControl.rh"

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