在VS2010中打开rc文件时'Guideline must specify type'错误



>我有一个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文件仍然无法打开!有没有更好的解决方案,或者我是否必须手动更改条目以希望它能修复它?

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

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

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

必须在值之前指定指导线的"类型"。它应该是以下之一:

LEFTMARGIN, RIGHTMARGIN, TOPMARGIN, BOTTOMMARGIN, VERTGUIDE, HORZGUIDE

你的代码是这样的:

IDD_INSTRUMENT_DIALOG, DIALOG
BEGIN
    BOTTOMMARGIN, 50
END

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

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

仅针对谷歌索引:德语错误消息是"Führungslinie muss Typangabe enthalten"。

相关内容

最新更新