имеем VS 2008 и компилятор из этого набора соответственно, как обьявить переменну чтоб после сборки она оказалась в секции кода? то что в секцию кода запрещена запись это понятно, но и нада статичная переменная, и вариант с обьеденинием секций тоже не подходит( подскажите как сделать?
Как вариант - с помощью асма вставить нужно количество байт, а потом ручками (Хью) подправить все смещения чтобы они указывали куда надо. А зачем такое жуткое извращение??? Объяснение может реально помочь.
Код (Text): #pragma const_seg(push, ".text") const int x = 0x2A; #pragma const_seg(pop) #pragma data_seg(push, ".text") int y; #pragma data_seg(pop) __declspec(allocate(".text")) int z;
вот оно) спс Sol_Ksacap , а суть в том что если запихать большой массив байт в секцию данных и в итоге получить данные>код, то идиотские АВ программы говорят якобы Троян Пак/Генерик и т.п(( а если засунуть в секцию с кодом то норм)
да ну нафиг. прям таки из-за размера секции данных? даь куча прог, у которых ресурсы занимают большую часть ехе'шника.
maksim_ так то ресурсы, а не данные какбэ RT_BITMAP - хорошо, а RT_DATA - палево хотя заголовок ресурса оно всеравно может проверить
GoldFinch так суть не в этом. вопрос в размере секции данных. блин, есть какая-нибудь графическая приблуда - хранит у себя в секции данных 3d модель. модель может занимать несколько метров, против кода в 100кб.
continue не все компиляторы знают что такое ресурсы. некоторые просто запихивают всё в секцию .data. насколько мне помнится, GCC не очень-то с ними дружит. так что там всё запихивается в обычный хидер.