Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2008, 15:01   #1
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию Как использовать возможности Макросов MASM'а

Люди, у меня вопрос. Я сейчас MASM изучаю, так вот там в MASM32 Macro High Level Reference описаны весьма приятные возможности.
Например макрос FUNC, он как function действует
Вот пример add edx, FUNC(APIcall,arguments ...)
Я пытаюсь его применить:
Код:
    .486                      ; create 32 bit code
      .model flat, stdcall      ; 32 bit memory model
      option casemap :none      ; case sensitive
include d:\masm32\include\user32.inc
includelib d:\masm32\lib\user32.lib

include d:\masm32\include\masm32.inc
includelib d:\masm32\lib\,masm32.lib
.data
szText db "Test message", 0
.code
start:
  invoke MessageBoxA,FUNC(GetForegroundWindow), addr szText,0,0
 ret
end start
Пишет:
q.asm(13) : error A2006: undefined symbol : FUNC
q.asm(13) : error A2114: INVOKE argument type mismatch : argument : 1


Кто уже имел удовольствие работать с макросами подскажите что не так.

И еще (я конечно потормошу гугль) подскажите хорошую литературу по макросам MASM'a
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.05.2008, 19:46   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

надо ещё подключить файл в котором находится содержание макроса. что-то я этого не наблюдаю...
rpy3uH вне форума Ответить с цитированием
Старый 26.05.2008, 09:46   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
надо ещё подключить файл
Так вот я и не пойму какой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.05.2008, 16:25   #4
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

В инклюлах я его тоже не нашёл, а сам макрос похоже выглядит так:

Код:
FUNC MACRO parameters:VARARG
        invoke parameters
        EXITM <eax>
      ENDM
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 26.05.2008, 17:41   #5
Maks1978
Пользователь
 
Аватар для Maks1978
 
Регистрация: 25.05.2008
Сообщений: 53
По умолчанию

Включи в прогу строку:
include d:\masm32\macros\macros.asm
там находятся почти все? макросы и этот FUNC и кстати он описан в строке 841 так же, как его описал Ulex.
Maks1978 вне форума Ответить с цитированием
Старый 27.05.2008, 15:47   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Maks1978
Во спасибо. Я то думал что asm подключать нельзя, а только inc. Ну теперь все путем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение макросов valerij Microsoft Office Excel 24 09.06.2008 00:57
Возможности CGI Viteef PHP 18 29.04.2008 22:48
Как ускорить выполнение макросов tat-besidovska Microsoft Office Excel 1 22.01.2008 12:12