![]() |
|
![]() ![]() ![]() |
|
d@nik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 12.10.2007 Репутация: нет Всего: нет |
Всем доброго времени суток.
Подскажите кто знает. Столкнулся с такой проблемой: вызываю функцию на С++, передавая параметры, объявленные в С++ модуле. Делаю это так: _asm{ push I2 push I1 call Sub2ints } затем сама функция: int Ccall_from_inlineasmDlg::Sub2ints(int i1, int i2) { _asm{ xor EAX, EAX mov EAX, i1 sub EAX, i2 } //return 0; } но под отладчиком параметры i1, i2 в любом случае равны 132 и 136, вне зависимости от того, что я передал перед вызовом функции. Скажите, что я делаю не так. Пожалуйста. |
|||
|
||||
Moonlit_angel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 14.9.2007 Где: Вильнюс, Литва Репутация: нет Всего: нет |
попробуй перед подачей новых параметров вычистить буфер. После подачи первых параметров, что дают результат 132 и 136, переменные i1, i2 не получают новых данных, т.е. в адресе остаются первичные данные.
Это сообщение отредактировал(а) Moonlit_angel - 16.10.2007, 15:57 |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
для начала, нужно четко обозначить модель вызова для вызываемой функции и следовать ей при "извращениях" из ассемблера.
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |