Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Assembler в C++

367
03 апреля 2007 года
Meatcoins
303 / / 18.01.2006
 
Код:
__asm {
        mov eax,4h
        push 200h
        push 400h
        call Beep
        invoke Beep,400h,200h
    }

invoke Beep,400h,200h - ошибка!!!

У меня есть много написанных элементов на Assembler'е с invoke'ми под Masm32 - хотелось бы их внедрять в C++! Неохото просто вместо invoke писать так:
 
Код:
push...
push...
...
push...
call...

Что делать??? Может библиотечка есть какая-то???
Пишу на Microsoft Visual Studio 6.0...
18K
25 апреля 2007 года
un_named
60 / / 24.04.2007
не разбираюсь в сях, но советую попробовать поставить макрос
15K
26 апреля 2007 года
vja
85 / / 09.01.2007
invoke - фишка masma, напиши свой макрос

ps и зачем юзать ассемблер для вызова api?
18K
29 апреля 2007 года
un_named
60 / / 24.04.2007
ВДЖА, я догадался, что это масм ;-)
речь шла о том, что бы или непосредственно во вставку класть макрос или в отдельный файл, второй вариант предпочтительнее, т.к. не нужно писать этот макрос заново каждый раз. Но не знаю, как он себя поведет в спарке с другим языком. Сам макрос может быть например таким:

macro invoke proc,[arg]
{ common
if ~ arg eq
reverse
pushd arg
common
end if
call [proc] }

Что касается,
Цитата:
ps и зачем юзать ассемблер для вызова api?


, то Meatcoins заранее объяснил:

Цитата:
У меня есть много написанных элементов на Assembler'е с invoke'ми под Masm32 - хотелось бы их внедрять в C++


--------------
Всем удачи, с уважением и т.д.

350
30 апреля 2007 года
cheburator
589 / / 01.06.2006
Цитата: Meatcoins
 
Код:
__asm {
        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);

не канает, если вызов идет из С/С++? А ассемблерный код самой функции можно скомпилировать asm'ом и полученный объектный файл указать в настройках проекта для компоновки.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог