2012-12-12 43 views
2

我有一個MFC項目,其中一切工作完好,我檢查了我的代碼在源代碼管理(perforce)。突然間.rc文件不會打開。當我嘗試打開,它給@行#410錯誤Guideline must specify type是這樣的:'指南必須指定類型'錯誤,同時在VS2010中打開rc文件

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

現在理所當然的,它似乎缺少一個條目,當我把它比作其他項目,但我手動沒有改變rc文件中的任何內容,VS2010一直專門處理它。我不知道這些條目何時發生變化。我從perforce獲得了一切到一個新的文件夾和rc文件仍然無法打開!有沒有更好的解決方案,還是我不得不手動更改條目,希望它能解決它?

+0

谷歌似乎無法確定GUIDELINES DESIGNINFO的實際用途。但是,在刪除塊之後,資源中的表單仍會像以往一樣加載。 –

回答

2

原來rc文件在某種程度上被VS2010破壞了。我有源代碼管理中的原始版本,並手動重新合併以修復它們。更正後的代碼看起來是這樣的:

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

的VS2010似乎破壞RC文件隨機當你複製/粘貼一個對話框,以創建一個新的。

1

在經常被這個問題困擾之後,我發現了VS2010有時會炸燬資源文件的designinfo的一個原因:在我的情況下,有一個剩餘的designinfo條目不再存在,甚至IDD_常數已經消失。 VS2010不會在該錯誤上拋出錯誤,而是加載垃圾。

而只是谷歌索引:德國錯誤消息是「Führungsliniemuss Typangabe enthalten」。

+0

這也是最近VS 2010項目對我造成問題的原因。原因是在// DESIGNINFO下有一個對話框資源沒有在上面的//對話框部分中定義。 – JosephHatfield

0

Guidline的「類型」必須在值之前指定。這應該是一個:

LEFTMARGIN, RIGHTMARGIN, TOPMARGIN, BOTTOMMARGIN, VERTGUIDE, HORZGUIDE

您的代碼將是這樣的:

IDD_INSTRUMENT_DIALOG, DIALOG 
BEGIN 
    BOTTOMMARGIN, 50 
END 
1

我發現,如果有過,但對話的ID是創建一個對話框在.rc文件中手動更改,然後在.rc文件中的對話框定義導致損壞。因此,我瀏覽了.rc文件的以前的工作版本,並找到了不再在resource.h文件中定義的對話ID,並將其從.rc文件中刪除。我還發現對話框的GUIDELINES DESIGNINFO部分可以是空的,即根本沒有任何Margin信息就可以有對話框定義。此GUIDELINES DESIGNINFO塊中的未知對話框定義將導致VS2010生成條目「,50」,這將使其他對話框出現一個附加的虛線框或具有紫色背景。

相關問題