В доке Микрософта написано, что эта директива назначает текст имени, где текст может быть или символьной строкой, или результатом %, или строкой, возвращаемой макросом. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmas m/html/vclrf_masm_textequ.asp Усё перепробовал, всё одно пишет: "error A2051: text item required". Вот неработающий "пример": Code (Text): make_nbd macro EXITM <offset szMake_nobody> endm MAKE_NOBODY textequ make_nbd Что не так делаю? :\
Если есть EXITM, то это не макрос, а макрофункция. В её вызове должны быть круглые скобки: Code (Text): make_nbd macro EXITM <offset szMake_nobody> endm MAKE_NOBODY textequ make_nbd() .data szMake_nobody db "nobody", 0 .code invoke MessageBox, 0, MAKE_NOBODY, 0, 0
Спасибо! Мда, описаний макрофункции, что-то я нигде не встречал. Кроме скромной строки на микрософте: "Beginning with the Microsoft Macro Assembler (MASM) version 6.0, a macro can be written that will return either a text or numeric value. This is called a "Macro Function" and is implemented with the EXITM directive." Поэтому думал, что макрофункция и макрос имеют один и тот же формат. Что ж - буду устранять "пробел в образовании" Еще раз большое спасибо!
Видел я её - много неточностей, сумбурная подача материала и местами недопустимые сокращения в повествовании. В общем - твердая троечка. Лучше пользоваться qh Кстати, ответа на мой вопрос там тоже нету :Р