Как подавить заполнение 00 в конце ресурса только dll, после стадии компоновщика - PullRequest
0 голосов
/ 01 декабря 2011

Я пытаюсь построить dll только для данных с MSVC 2008. В исходном файле есть только одна структура.

Я создаю объектный файл со следующими флагами (/ c / TC) и связываю его с (/ NODEFAULTLIB / NOENTRY /DLL).

Я вижу дополнительные 0x18c байтов 00, добавленных в конце, в результате чего общий размер раздела данных будет 0x200. Это какая-то проблема выравнивания или упаковки? В настоящее время я использую прагма-пакет в своей структуре.

Как бы я подавил генерацию этих лишних 00?

1 Ответ

0 голосов
/ 01 декабря 2011

Да, размер разделов в исполняемом образе (например, .data) должен быть степенью 2 с 512 минимальным размером. IMAGE_OPTIONAL_HEADER.SectionAlignment значение.

Простые обходные пути включают в себя размер структуры как поле в структуре и / или оператор sizeof . Или используя компилятор ресурсов и SizeofResource ().

...