MSVC ++ - принудительно помещает все в один раздел, кроме `.reloc` - PullRequest
0 голосов
/ 18 июля 2011

Я пытался использовать Microsoft Visual C ++ #pragma section( ".text" ) и __declspec(allocate(".text")) для статических строковых данных только для чтения.Но в бинарном файле все еще есть раздел .rdata.Я НЕ использую стандартные библиотеки Си.Я использую MSVC ++ в качестве компилятора байт-кода для использования с внедрением кода.

Это значительно упростит внедрение, поскольку данные доступны только для чтения внутри раздела ".text", а не раздел ".rdata".Как я могу это сделать?есть ли опция компоновщика для объединения всего в один раздел или объединения двух разделов вместе?

Ответы [ 2 ]

2 голосов
/ 18 июля 2011

В компоновщике Microsoft есть опция merge sections. Похоже, это будет работать для моих целей. /MERGE:[from=to]

0 голосов
/ 29 июля 2014

Поместите все строки и другие статические данные в стек вручную.

Так что вам не нужны другие разделы, кроме .text.

char String[] = { 's', 't', 'r', 'i', 'n', 'g', 0 };

и Unicode:

wchar_t WideString[] = { L'H', L'e', L'l', L'l', L'o', L'\0' };
...