Visual Studio 2005. RC文件包括

时间:2008-09-18 18:30:16

标签: visual-studio visual-studio-2005

我在Visual Studio 2005上用C ++编程。我的问题涉及.rc文件。您可以在.rc文件的顶部手动放置include指令,如(#include“blah.h”)。但是,自从第一次有人在资源编辑器中打开.rc文件以来,它就被覆盖了。我知道有一个地方可以制作这些定义,以便它们不会被删除,但我找不到它,谷歌搜索没有帮助。有人知道吗?

5 个答案:

答案 0 :(得分:6)

以正常方式将#include添加到文件中,但也将其添加到文件中的三个“TEXTINCLUDE”部分中,如下所示:

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

请注意以下详细信息:

  • 每行都包含在引号
  • 使用引号对,例如,“”将引号字符嵌入
  • 用\ r \ n
  • 结束每一行
  • 使用“\ 0”
  • 结束TEXTINCLUDE块

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

如果您现有的rc文件尚未包含TEXTINCLUDE块,请使用Solution Explorer窗格中的新文件向导添加新的rc文件,然后将其用作模板。

答案 1 :(得分:4)

您想要Include Resources at Compile Time(MSDN)。

答案 2 :(得分:3)

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

#ifdef WIN64
#include "Icons64.rc"
#else
#include "Icons32.rc"
#endif

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

答案 3 :(得分:2)

所有血腥细节都可以在MFC Technote #35找到。

-Ron

答案 4 :(得分:0)

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

我认为VC ++的全局可访问值的一般做法是在stdafx.h中定义它们(至少我已经看过它的方式),或创建类似“globals.h”头文件并包含无论你需要它。这实际上取决于你想要完成的事情。