Нежелательные дополнительные значки в приложении - PullRequest
2 голосов
/ 14 мая 2011

Использование Delphi 2007. Я добавляю 2 дополнительных значка в свое приложение, чтобы использовать их для некоторых пользовательских ассоциаций файлов.Использование пользовательских файлов ресурсов, и это работает правильно.Однако при просмотре результирующих exe-файлов я обнаружил некоторые дополнительные значки и не знаю, откуда они.

В результате мои значки становятся значками 5 и 6 вместо 1 и 2. В результатеПри добавлении пользовательских ассоциаций файлов моя запись реестра DefaultIcon должна использовать 5 и 6 вместо того, что я ожидал.

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

Есть идеи, где их искать?

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

Delphi добавляет один значок к вашему exe-файлу (по умолчанию или указанному пользователем).

Если вы видите больше значков в вашем приложении, то они либо:

  • Добавляютсяс файлом .rc где-то.
  • Они были добавлены непосредственно в файл .res вашего проекта.

Вы можете просматривать и редактировать содержимое файла .res, используя любой ресурс.редактор.Два хороших примера - приложения из Андерса Меландера и Колина Уилсона .

ОБНОВЛЕНИЕ:

Поскольку Люк не нашел другой файл .rc и егоФайл .res правильный, вот еще несколько вещей, которые я бы попробовал:

  • Delphi 2007 поддерживает события до и после сборки.Посмотрите, есть ли что-нибудь, что могло бы добавить ресурсы.
  • Просмотрите выходные данные компилятора в окне сообщений на наличие признаков неожиданного файла .res или .rc.
  • Поиск в исходных файлах экземпляров".res" или ".rc".
1 голос
/ 15 мая 2011

В дополнение к тому, что сказал Брюс, ResHacker также является бесплатным инструментом для просмотра ресурсов вашего exe.

Кроме того, я не уверен, сработает ли это, но не могли бы вы сохранить нужные значки в dll-ресурсе и извлекать / использовать их, когда вам нужно?

...