Как применить правила компилятора, когда resource.h или icon.ico должны быть включены в exe? - PullRequest
0 голосов
/ 10 июля 2010

Я использую #define и #ifndef для сокращения размера exe, я заметил, что файлы resource.h и icon.ico занимают много места, поэтому я бы не хотел включать их в мой exe.

Как добавить правило для этого, которое подчиняется моим командам #define?Я мог бы отредактировать resource.h, но каждый раз, когда я менял его, Visual Studio перезаписывал его.

Редактировать: я не знаю, как правильно называть эти ресурсы, но мой "resource.h""включает в себя элементы меню окна и т. д.

Ответы [ 2 ]

0 голосов
/ 10 июля 2010

В VS2010 свойства ресурсов значков включают в себя элемент «Условие», который описывается как «Указывает символ препроцессора, определяющий включение ресурса».

Можно ли обновить?

Окно редактирования отключено, однако вам нужно прыгнуть через несколько обручей, чтобы установить Условие. Щелкните правой кнопкой мыши ресурс и выберите «Вставить копию», затем вы можете установить условие, а затем удалить исходный безусловный значок.

Может быть, этот трюк будет работать и в VS2008, не устанавливайте его на этом компьютере, поэтому я не могу его протестировать.

0 голосов
/ 10 июля 2010

Сколько стоит "много места", о котором вы говорите?

resource.h используется для #define -констант, определяющих ресурсы, например, это просто цифры. Они не должны быть фактором в размере исполняемого файла.

В качестве размера исполняемого файла учитываются ресурсы, которые вы встраиваете в исполняемый файл, указанный в файле * .rc. icon.ico занимает место в * .exe, потому что компилятор встраивает двоичный файл значка в сам исполняемый файл. Этот значок указан в файле * .rc, который должен находиться где-то в вашем проекте.

Вы можете удалить значок из файла * .rc и сохранить его отдельно от файла * .exe, но проще просто вставить его в исполняемый файл. В конце концов, информация для определения меню, значков, диалогов и т. Д. Должна храниться где-то.

Редактировать: Вы можете иметь несколько файлов ресурсов, поэтому Visual Studio не перезаписывает ваши директивы. Обратитесь к http://msdn.microsoft.com/en-us/library/6t3612sk(v=VS.80).aspx, чтобы увидеть, как Visual Studio обрабатывает несколько файлов ресурсов. Раздел " Использование нескольких файлов ресурсов в одном проекте ", по-видимому, имеет отношение к вашей проблеме.

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