Как скопировать ресурсы из одного исполняемого файла в другой - PullRequest
0 голосов
/ 14 февраля 2012

Хорошо, мой вопрос немного странный. Но здесь мы идем.

Я пытаюсь разработать исполняемый файл «обертка» и консольную программу. Задача консольной программы - скопировать значки и информацию о версии из другого исполняемого файла в файл оболочки, чтобы и файл оболочки, и файл exe выглядели одинаково. Помимо этого exe-файл добавляется в конец файла оболочки. Таким образом, когда исполняется оболочка, он может извлечь и выполнить добавленный исполняемый файл.

У меня вопрос, как мне создать файл-обертку, чтобы разместить информацию о значках и версии из другого exe-файла? Я имею в виду, как должен быть мой файл ресурсов?

А дальше - Как скопировать значки и информацию о версии. Я искал и нашел несколько кодов и инструкций MSDN, но каждый из них использует FindResource, LoadResource и т. Д. Но, следуя этому методу, я теряю оригинальное содержимое файла оболочки. Размер моего файла уменьшается с 67 КБ до 14 КБ, и когда я открываюсь в блокноте, я вижу, что много содержимого пропало ...

можно ли что-нибудь сделать с помощью SHGetFileInfo ()? Это может быть использовано для получения HICON из exe-файла. но как мне использовать этот HICON для замены ресурса иконки в файле оболочки ??

1 Ответ

1 голос
/ 14 февраля 2012

Основной подход в вашем предыдущем вопросе правильный.Вы определенно не хотите дурачиться с SHGetFileInfo и HICON.Тип ресурса не должен иметь значения.

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

Чтобы понять, что происходит с вашим кодом, используйте инструмент, который может просматриватьресурсы в результате exe.Visual C ++ Express не может этого сделать, но платные версии могут.В качестве альтернативы Google запускает несколько бесплатных утилит для этого. Вот один, Я не знаю, хорошо ли это.Страница также содержит ссылки на некоторые другие инструменты.

...