Возьму Код (Text): format PE GUI 4.0 entry main Очень было бы удобно сделать не зависимый от имнеи точки входа макрос для написания базово-независимого кода. Но возможно ли как либо узнать метку точки входа. Пояснию на примере: Есть статья от Ms-Rem: URL: http://www.wasm.ru/article.php?article=fwb , в ней он использует макрос: Код (Text): macro callx i {call dword [ebp+p_#i-CodeStart]} macro invokex proc,[arg] { common if ~ arg eq reverse pushd arg common end if callx proc } НО! Он заранее закладывается на то что метка точки входа будет именоваться CodeStart, а мне бы хотелось узнать, а есть ли способ не привязываться к конкретному имени, моэжет есть какая хитрая директива или макрос?
EvilsInterrupt Если точка входа в начале секции, то можешь использовать "$$". А так вряд ли что-то тебе поможет. А тебе жалко лишней строчки? "CodeStart = your_fav_start_label".
IceStudent Я делаю небольшой инклуд с макросами, то что обычно для меня, к примеру название точки входа своим ником, не обязательно такого же правила будет придерживаться и мой друг Вася, т.е. он не обязан называть моим ником свои точки входа! )) Да не спорю, ему нужно будет поправить всего одну строчку, но зачем? Разве живем для того чтобы решить и забыть?
EvilsInterrupt Раз делаешь библиотеку, документируй её. И напиши, что, дескать, ей необходима метка CODE_START_LABEL. А уж пользователи её потрудятся объявить её у себя или сделать хотя бы дефайн.
Удалил по запарке Black_mirror: EvilsInterrupt Можно написать такую версию макроса entry: macro entry name { entry_name equ name entry name } а если в нужный момент entry_name не определено то выдать сообщение что твой файл необходимо включать до директивы entry.
Black_mirror Мне бы такое решение не понравилось, т.к. до директивы entry у меня только format и ничего более.
пришёл к выводу, что entry лучше всё-таки после include'в писать, т.к. если это расширенные х-имклуды, то они содержат format внутри и нет нужды его писать в явном виде, просто указать расширенный инклуд и, затем, точку входа.