Вверх ↑
Ответов: 5446
Рейтинг: 323
#1: 2007-05-21 13:23:41 ЛС | профиль | цитата
Galkov писал(а):
this - это первый аргумент.

Galkov писал(а):
В Дельфях, соответственно, это EAX.


А вот фиг - не eax, а ecx:

#define WrapDelphiCall(t,n,t1,p1) inline t n(t1 p1) { 
__asm mov eax, p1
__asm mov ecx, this
__asm call dword ptr [ecx].p##n }

#define WrapDelphiCall2(t,n,t1,p1,t2,p2) inline t n(t1 p1, t2 p2) {
__asm mov eax, p1
__asm mov edx, p2
__asm mov ecx, this
__asm call dword ptr [ecx].p##n }

Код рабочий, проверено

[size=-2]------ Добавлено в 13:23
Соответственно, вопрос о макросе WrapDelphiCall3 остаётся в силе.
карма: 1

0