我在Visual Studio 2005上用C ++编程。我的问题涉及.rc文件。您可以在.rc文件的顶部手动放置include指令,如(#include“blah.h”)。但是,自从第一次有人在资源编辑器中打开.rc文件以来,它就被覆盖了。我知道有一个地方可以制作这些定义,以便它们不会被删除,但我找不到它,谷歌搜索没有帮助。有人知道吗?
答案 0 :(得分:6)
以正常方式将#include添加到文件中,但也将其添加到文件中的三个“TEXTINCLUDE”部分中,如下所示:
2 TEXTINCLUDE
BEGIN
"#include ""windows.h""\r\n"
"#include ""blah.h\r\n"
"\0"
END
请注意以下详细信息:
当资源编辑器重写文件时,放置在“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”头文件并包含无论你需要它。这实际上取决于你想要完成的事情。