Visual Studio2005。RC文件包括

Visual Studio2005。RC文件包括

Visual Studio 2005. RC File includes

我正在Visual Studio 2005上用C ++编程。我的问题涉及.rc文件。 您可以将。(#include" blah.h")之类的包含指令手动放置在.rc文件的顶部。 但是,这是个坏消息,因为第一次有人在资源编辑器中打开.rc文件时,该文件将被覆盖。 我知道有一个地方可以定义这些内容,这样就不会浪费它们,但我找不到它并且谷歌搜索也无济于事。 有人知道吗


以常规方式将#include添加到文件中,但也将其添加到文件中三个" TEXTINCLUDE"部分之一,如下所示:

1
2
3
4
5
6
7
8
9
10
2 TEXTINCLUDE
BEGIN
   "#include""windows.h""\
\
"
    "#include""blah.h\
\
"
    "\\0"
 END

请注意以下详细信息:

  • 每行都包含在引号中
  • 使用双引号,例如""将引号字符内联
  • 每行以\ r \ n结尾
  • 以" \ 0"结束TEXTINCLUDE块

当资源编辑器重写文件时,放置在" 1 TEXTINCLUDE"块中的语句将被写入.rc文件的开头。紧随其后的是放置在2和3块中的语句,因此您可以通过使用适当编号的块来保证相对包含文件的顺序。

如果您现有的rc文件尚未包含TEXTINCLUDE块,请使用"解决方案资源管理器"窗格中的新文件向导添加新的rc文件,然后将其用作模板。


您要在编译时包含资源(MSDN)。


在Visual Studio IDE中,右键单击.rc文件(在"资源视图"面板中),然后从快捷菜单中选择"资源包括"。对话框打开时,使用其"编译时指令"区域输入要包含在.rc文件中的内容。例如,如果希望您的64位和32位版本使用不同的图标,则可以为每个版本包括适当的资源文件,如下所示:

1
2
3
4
5
#ifdef WIN64
#include"Icons64.rc"
#else
#include"Icons32.rc"
#endif

值得注意的是,这些定义默认情况下未在资源编译器中设置,因此对于64位版本,请确保将/ DWIN64添加到rc版本中。


所有的细节都可以在MFC技术说明#35中找到。

罗恩


我不确定您为什么要这样做,但是手动修改资源文件可能不是一个好主意。

我认为VC ++对于全局可访问值的一般做法是在stdafx.h中定义它们(至少这是我所看到的方式),或者创建类似" globals.h"头文件的内容,并在任何地方包含它需要它。这实际上取决于您要完成的工作。


推荐阅读