【问题标题】:'Guideline must specify type' error while opening rc file in VS2010在 VS2010 中打开 rc 文件时出现“指南必须指定类型”错误
【发布时间】:2012-12-12 23:15:27
【问题描述】:

我有一个 MFC 项目,其中一切工作正常,我在源代码控制 (perforce) 中签入了我的代码。突然之间,.rc 文件无法打开。当我尝试打开时,它给出了一个错误Guideline must specify type@line# 410 这是这样的:

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
    IDD_ABOUTBOX, DIALOG
    BEGIN
        , 50
    END

现在,当我将它与其他项目进行比较时,它似乎确实缺少一个条目,但我没有手动更改 rc 文件中的任何内容,VS2010 一直在专门处理它。我不知道这些条目何时更改。我得到了从 perforce 到新文件夹的所有内容,但 rc 文件仍然无法打开!有没有更好的解决方案,还是我必须手动更改条目以希望它能修复它?

【问题讨论】:

  • Google 似乎无法确定 GUIDELINES DESIGNINFO 的实际用途。但是,删除块后,资源中的表单仍然像往常一样加载。

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


【解决方案1】:

结果证明 rc 文件在某些​​时候被 VS2010 损坏了。我在源代码管理中拥有原始版本并手动重新合并它们以修复它。更正后的代码如下所示:

GUIDELINES DESIGNINFO
BEGIN
    IDD_ABOUTBOX, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 163
        TOPMARGIN, 7
        BOTTOMMARGIN, 55
    END
END

当您复制/粘贴对话框以创建新对话框时,VS2010 似乎随机损坏了 rc 文件。

【讨论】:

    【解决方案2】:

    在经常被这个问题困扰之后,我找到了 VS2010 有时会炸毁资源文件的设计信息的原因:在我的情况下,对话框中有一个剩余的设计信息条目不再存在,并且甚至 IDD_ 常量也已经消失了。 VS2010 不会对此抛出错误,而是加载垃圾。

    仅针对 google 索引:德语错误消息是“Führungslinie muss Typangabe enthalten”。

    【讨论】:

    • 这也是我最近的 VS 2010 项目中出现问题的原因。原来在 // DESIGNINFO 下有一个条目,用于在上面的 // 对话框部分中未定义的对话框资源。
    【解决方案3】:

    我发现如果之前创建了一个对话框,但在 .rc 文件中手动更改了对话框的 ID,则 .rc 文件中的对话框定义会导致损坏。因此,我查看了 .rc 文件的先前工作版本,发现在 resource.h 文件中不再定义的对话框 ID 并将其从 .rc 文件中删除。我还发现对话框的 GUIDELINES DESIGNINFO 部分可以为空,即可以有一个没有任何边距信息的对话框定义。 GUIDELINES DESIGNINFO 块中的未知对话框定义将导致 VS2010 生成条目“,50”,这将使其他对话框出现额外的虚线框或紫色背景。

    【讨论】:

      【解决方案4】:

      Guidline 的“类型”必须在值之前指定。它应该是以下之一:

      LEFTMARGIN, RIGHTMARGIN, TOPMARGIN, BOTTOMMARGIN, VERTGUIDE, HORZGUIDE

      你的代码应该是这样的:

      IDD_INSTRUMENT_DIALOG, DIALOG
      BEGIN
          BOTTOMMARGIN, 50
      END
      

      【讨论】:

        猜你喜欢
        • 2017-01-28
        • 2015-09-13
        • 2015-10-10
        • 2016-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-29
        • 1970-01-01
        相关资源
        最近更新 更多