C ++ Visual Studio 2010 Exe в ресурс получить Rebased? - PullRequest
8 голосов
/ 27 сентября 2011

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

Временами это раздражает. Кто-нибудь знает, как отключить ребазинг!?

шагов для воспроизведения в c ++:

1) скомпилируйте hello world и вручную установите его базовый адрес (в свойствах), скажем, 0x1000000

2) создайте второй проект и включите привет в мир ресурсов. Также вручную установите его базовый адрес, как указано выше.

3) построить второй проект

4) Извлеките exe из ресурсов и проверьте его с помощью Pe-редактора! он возвращается к 0x400000. Почему?! * * 1013

Ответы [ 2 ]

1 голос
/ 04 октября 2011

Как вы включаете EXE-файл в качестве ресурса во второй проект?

Используя эти определения:

#define BINFILE 222
#define IDR_MYFILE 101

Если я ссылаюсь на исполняемый файл в моем файле .rc как указывающий наоригинальный файл, например:

IDR_MYFILE BINFILE "S:\\mysource\\t1\\Release\\t1.exe"

Затем, после извлечения, мой встроенный EXE-ресурс не перебазируется, но сохраняет то, с чем я его собрал.

0 голосов
/ 25 января 2012

Возможно, вас заинтересует двоичный компоновщик, который преобразует ваш exe-файл в массив const без знака char [].Таким образом, VisualStudio не будет иметь возможности отследить ваши ресурсы.

Например, этот: http://sourceforge.net/projects/juce/files/juce/1.52/prebuilt%20binaries/BinaryBuilder.exe/download

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