在.rc文件中复制TEXTINCLUDE部分

sas*_*alm 6 c++ winapi resource-file visual-studio

在我的.rc文件中,我发现我有3个TEXTINCLUDE部分重复两次,内容不同.当我打开"资源包含"时,仅显示前3个部分中的包含.很久以前我已经调整了.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
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 9

这是由Visual Studio内置的图形资源编辑器生成的gunk.它在运行时没有任何影响,它只是为编辑器保存状态.当你弄乱它时,你将面临破坏编辑器的严重风险.如果您从不使用资源编辑器并始终使用文本编辑器管理资源,那也没关系.

这篇MSDN文章中有一些背景信息:

下面介绍Visual C++如何在.RC文件中维护此信息.您不需要此信息来使用Visual C++,但它可以增强您的理解,以便您可以更自信地使用Set Includes功能.

上述三种类型的Set Includes信息中的每一种都以两种形式存储在.RC文件中:(1)作为#include或资源编译器可解释的其他指令,以及(2)作为特殊的TEXTINCLUDE资源,只能由Visual C++解释.

TEXTINCLUDE资源的目的是以一种在Visual C++的"设置包含"对话框中可以显示的形式安全地存储"设置包含"信息.TEXTINCLUDE是Visual C++定义的资源类型.Visual C++识别具有资源标识号1,2和3的三个特定TEXTINCLUDE资源:

TEXTINCLUDE resource ID     Type of Set Includes information
        1                   Symbol Header File
        2                   Read-Only Symbol Directives
        3                   Compile-Time Directives
Run Code Online (Sandbox Code Playgroud)