__asm {
mov eax,4h
push 200h
push 400h
call Beep
invoke Beep,400h,200h
}
Assembler в C++
Код:
invoke Beep,400h,200h - ошибка!!!
У меня есть много написанных элементов на Assembler'е с invoke'ми под Masm32 - хотелось бы их внедрять в C++! Неохото просто вместо invoke писать так:
Код:
push...
push...
...
push...
call...
push...
...
push...
call...
Что делать??? Может библиотечка есть какая-то???
Пишу на Microsoft Visual Studio 6.0...
не разбираюсь в сях, но советую попробовать поставить макрос
ps и зачем юзать ассемблер для вызова api?
речь шла о том, что бы или непосредственно во вставку класть макрос или в отдельный файл, второй вариант предпочтительнее, т.к. не нужно писать этот макрос заново каждый раз. Но не знаю, как он себя поведет в спарке с другим языком. Сам макрос может быть например таким:
macro invoke proc,[arg]
{ common
if ~ arg eq
reverse
pushd arg
common
end if
call [proc] }
Что касается,
Цитата:
ps и зачем юзать ассемблер для вызова api?
, то Meatcoins заранее объяснил:
Цитата:
У меня есть много написанных элементов на Assembler'е с invoke'ми под Masm32 - хотелось бы их внедрять в C++
--------------
Всем удачи, с уважением и т.д.
Цитата: Meatcoins
Код:
__asm {
mov eax,4h
push 200h
push 400h
call Beep
invoke Beep,400h,200h
}
mov eax,4h
push 200h
push 400h
call Beep
invoke Beep,400h,200h
}
invoke Beep,400h,200h - ошибка!!!
А что,
Код:
extern "C" void Beep(int, int);
...
Beep (0x400, 0x200);
...
Beep (0x400, 0x200);
не канает, если вызов идет из С/С++? А ассемблерный код самой функции можно скомпилировать asm'ом и полученный объектный файл указать в настройках проекта для компоновки.