Visual Studio 2005. RC файл включает в себя - PullRequest
9 голосов
/ 18 сентября 2008

Я программирую на C ++ на Visual Studio 2005. Мой вопрос касается файлов .rc. Вы можете вручную разместить директивы include, такие как (#include "blah.h"), в верхней части файла .rc. Но это плохая новость, поскольку, когда кто-то открывает файл .rc в редакторе ресурсов, он перезаписывается. Я знаю, что есть место, где можно определить эти определения, чтобы они не были уничтожены, но я не могу его найти, и поиск в Google не помог. Кто-нибудь знает?

Ответы [ 5 ]

6 голосов
/ 18 сентября 2008

Добавьте ваш #include в файл обычным способом, но также добавьте его в один из трех разделов «TEXTINCLUDE» в файле, например:

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

Обратите внимание на следующие детали:

  • Каждая строка заключена в кавычки
  • Используйте пары кавычек, например, , "", чтобы поместить символ кавычки в строку
  • Конец каждой строки \ r \ n
  • Завершить блок TEXTINCLUDE клавишей "\ 0"

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

Если в существующем файле rc еще нет блоков TEXTINCLUDE, используйте мастер создания новых файлов из панели обозревателя решений, чтобы добавить новый файл rc, а затем используйте его в качестве шаблона.

4 голосов
/ 18 сентября 2008
3 голосов
/ 18 сентября 2008

В Visual Studio IDE щелкните правой кнопкой мыши файл .rc (на панели «Просмотр ресурсов») и выберите «Ресурс включает» в контекстном меню. Когда диалоговое окно откроется, используйте его область «Директивы времени компиляции», чтобы ввести все, что вы хотите включить в файл .rc. Например, если вы хотите, чтобы в ваших 64-битных и 32-битных сборках использовались разные значки, вы можете включить соответствующий файл ресурсов для каждой сборки следующим образом:

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

Стоит отметить, что эти определения не установлены в компиляторе ресурсов по умолчанию, поэтому для вашей 64-битной сборки обязательно добавьте / DWIN64 в сборку rc.

2 голосов
/ 25 сентября 2009

Все подробности можно найти в MFC Technote # 35 .

-Ron

0 голосов
/ 18 сентября 2008

Я не совсем уверен, почему вы пытаетесь это сделать, но изменение файлов ресурсов вручную, вероятно, не очень хорошая идея.

Я считаю, что общая практика для VC ++ для глобально доступных значений - определять их в stdafx.h (по крайней мере, так я это делал) или создавать что-то вроде заголовочного файла "globals.h" и включать это где вам нужно. Это действительно зависит от того, чего вы пытаетесь достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...