Я храню некоторые переменные внутри пользовательского раздела в моей программе.Во время сеанса отладки я могу проверить, что он создан и содержит ли он необходимые данные.Но в режиме релиза он исчезает!
Примечание: я также создаю исполняемый раздел, который странным образом создается в обеих версиях.Платформа ЦП, кажется, не имеет значения.
Почему сегмент «данных» не появляется в версии выпуска?
Это короткий снимок:
// Defnitions used for better code segmentation
#define store_variable(x) __declspec(allocate(x)) //for data segment
#define store_code(seg) __declspec(code_seg(seg)) //for execution segment
#pragma section(".eqwrt", read) //weird name because I thought there would be collision
store_variable(".eqwrt") UCHAR USER_DATA[SIZE];
store_variable(".eqwrt") USHORT Version = 1;
store_code(".wsect") bool sendError();
Программа (это dll) скомпилирована с фиксированным базовым адресом и флагом / MT.
Выпуск версии x64.Появляется только один сегмент - исполняемый:
Отладочная версия x64.Оба сегмента отображаются: