2012-08-09 1 views
5

В моем файле .rc я обнаружил, что у меня есть три раздела TEXTINCLUDE, повторяющиеся дважды, с различным контентом. Когда я открываю «Resource Includes», отображаются только входящие из первых трех разделов. Я давно изменил .rc, так что, возможно, это осталось от этого.Дублирование разделов TEXTINCLUDE в файле .rc

Могу ли я безопасно удалить второй 3 раздела?

Я вставил это из моего файла .rc, вы можете увидеть, как секции TEXTINCLUDE повторяются (например, «3 TEXTINCLUDE» следует «1 TEXTINCLUDE».

1 TEXTINCLUDE 
BEGIN 
    "resource.h\0" 
END 

2 TEXTINCLUDE 
BEGIN 
    "#include ""afxres.h""\r\n" 
    "#include ""res/Pngs.h""\r\n" 
    "#include ""res/PngsNag.h""\0" 
END 

3 TEXTINCLUDE 
BEGIN 
    "#include ""afxres.rc""  // Standard components\r\n" 
    "#include ""res/MyProject.rc2""\r\n" 
    "#include ""res/Pngs.rc2""\r\n" 
    "#include ""res/PngsNag.rc2""\0" 
END 

1 TEXTINCLUDE 
BEGIN 
    "resource.h\0" 
END 

2 TEXTINCLUDE 
BEGIN 
    "#include ""afxres.h""\r\n" 
    "\0" 
END 

3 TEXTINCLUDE 
BEGIN 
    "#define _AFX_NO_SPLITTER_RESOURCES\r\n" 
    "#define _AFX_NO_OLE_RESOURCES\r\n" 
    "#define _AFX_NO_TRACKER_RESOURCES\r\n" 
    "#define _AFX_NO_PROPERTY_RESOURCES\r\n" 
    "\r\n" 
    "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" 
    "#ifdef _WIN32\r\n" 
    "LANGUAGE 9, 1\r\n" 
    "#pragma code_page(1252)\r\n" 
    "#endif //_WIN32\r\n" 
    "#include ""res\\MyProject.rc2"" // non-Microsoft Visual C++ edited resources\r\n" 
    "#include ""afxres.rc""   // Standard components\r\n" 
    "#endif\r\n" 
    "\0" 
END 

ответ

6

Это мусор, который генерируется графическим редактором ресурсов, встроенным в Visual Studio. Он не имеет никакого эффекта во время выполнения, он просто экономит состояние для редактора. Вы столкнетесь с серьезным риском взлома редактора, когда будете в него возиться. Это нормально, если вы никогда использовать редактор ресурсов и всегда управлять ресурсами с помощью текстового редактора.

Там немного справочной информации в этом MSDN article:

Ниже описывается, как Visual C++ поддерживает эту информацию в файле .RC. Вам не нужна эта информация для использования Visual C++, но это может улучшить ваше понимание, чтобы вы могли более уверенно использовать функцию Set Includes.

Каждый из трех указанных выше типов Set содержит информацию, хранящуюся в файле .RC в двух формах: (1) как #include или другие директивы, интерпретируемые компилятором ресурсов, и (2) как специальные ресурсы TEXTINCLUDE, только интерпретируемые по Visual C++.

Цель ресурса TEXTINCLUDE состоит в том, чтобы безопасно хранить информацию о наборе включений в форме, которая легко может быть представлена ​​в диалоговом окне Set Includes Visual C++. TEXTINCLUDE - тип ресурса, определенный Visual C++. Visual C++ распознает три конкретных TEXTINCLUDE ресурсы, которые имеют идентификационные номера ресурса 1, 2 и 3:

TEXTINCLUDE resource ID  Type of Set Includes information 
     1     Symbol Header File 
     2     Read-Only Symbol Directives 
     3     Compile-Time Directives 
1

только один набор TEXTINCLUDE вам необходимо решить, какой набор работает лучше для вас.

Смежные вопросы