我有一个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文件仍然无法打开!有没有更好的解决方案,或者我必须手动更改条目,希望它能解决它?
答案 0 :(得分:2)
原来rc文件在某种程度上被VS2010破坏了。我在源代码管理中使用了原始版本并手动重新合并以修复它。更正后的代码如下所示:
GUIDELINES DESIGNINFO
BEGIN
IDD_ABOUTBOX, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 163
TOPMARGIN, 7
BOTTOMMARGIN, 55
END
END
当复制/粘贴对话框以创建新文件时,VS2010似乎会随机破坏rc文件。
答案 1 :(得分:1)
经常被这样做后,我发现了VS2010有时会炸毁资源文件的designinfo的原因:在我的情况下,有一个剩余的designinfo条目用于不再存在的对话框,并且甚至IDD_常数已经消失了。 VS2010不会引发错误,而是加载垃圾。
仅针对谷歌索引:德语错误消息是“FührungsliniemussTypangabe enthalten”。
答案 2 :(得分:1)
我发现如果之前创建了一个对话框但是在.rc文件中手动更改了对话框的ID,那么.rc文件中的对话框定义会导致损坏。因此,我查看了.rc文件的上一个工作版本,找到了不再在resource.h文件中定义的对话框ID,并将其从.rc文件中删除。我还发现对话框的GUIDELINES DESIGNINFO部分可以是空的,即可以根本没有任何边际信息的对话框定义。此GUIDELINES DESIGNINFO块中的未知对话框定义将导致VS2010生成条目“,50”,这将使其他对话框出现另外的虚线框或紫色背景。
答案 3 :(得分:0)
必须在值之前指定Guidline的“类型”。它应该是以下之一:
LEFTMARGIN, RIGHTMARGIN, TOPMARGIN, BOTTOMMARGIN, VERTGUIDE, HORZGUIDE
您的代码将是这样的:
IDD_INSTRUMENT_DIALOG, DIALOG
BEGIN
BOTTOMMARGIN, 50
END