2

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

4

4 回答 4

3

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

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

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

于 2012-12-21T19:07:29.827 回答
1

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

仅用于谷歌索引:德语错误消息是“Führungslinie muss Typangabe enthalten”。

于 2013-04-29T09:48:53.003 回答
1

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

于 2014-02-15T07:19:35.427 回答
0

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

LEFTMARGIN, RIGHTMARGIN, TOPMARGIN, BOTTOMMARGIN, VERTGUIDE, HORZGUIDE

您的代码将是这样的:

IDD_INSTRUMENT_DIALOG, DIALOG
BEGIN
    BOTTOMMARGIN, 50
END
于 2014-02-03T21:52:51.277 回答