хай Всем мира в сердце и покой в души такую интересную фишку подметил если функию оюъявить как Код (Text): static __declspec(naked) void ....() { } то когда делаеш так &.... то береш настоящий адрес а когда Код (Text): __declspec(naked) void ....() { } то получаеш адрес jmp'а разумеется это ксается только debug версии в releaee всегда настоящий адрес так вот вопрос могу ли я положиься на это знание или сделать что то типа такого Код (Text): __declspec(naked) void ...() { __asm { call $ + 5 pop eax add eax, 5 ret ... ; тута данные хранимые в коде ... ; } } тоесть вызываю она мне вернет адрес начала данных в функции это надежно вроде бы суть в том что мне надо хранить некоторые данные в коде и иметь всегда реальный адрес данных "студия" как известно в debug версии подсовывает адрес jmp'а если только не применить волшебное слово static P.S VC++ 2008
да и правда интересно но вопрос открытый можно ли положиться на то что с настройками по умолчанию в debug версии (incremental link включен) если мы применим static к функции Код (Text): static __declspec(naked) ...() { } то получим настоящий адрес ?
почему ? ведь это работает и тогда еще вопрос если все таки нельзя то как тогда быть ? слишком уж это костыльно мне кажется Код (Text): __declspec(naked) void ...() { __asm { call $ + 5 pop eax add eax, 5 ret ... ; тута данные хранимые в коде ... ; } }