|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#46
|
|||
|
|||
А по теме.
тебе нужно разбить твою супер функцию на две или три части. Первая - получения адреса функции из DLL+всякие проверки. Вторая - разбор параметров и укладка их в массив. Безо всякого асма. И третья сам вызов - тут самая большая проблема, которая, если её выделить, может сильно упроститься. например до вот этого Код:
type TFunction = function():DWord;stdcall; function SuperCall(F:TFunction; const Params : Array of DWord):DWord; var I:Integer; P:Pointer; begin for I:=0 to Length(Params)-1 do begin P:=@Params[i]; asm mov EAX,P; Push [EAX]; <<<<----====== end; end; Result:=F(); end; |
#47
|
||||
|
||||
Цитата:
2 тоже уже реализовано ТС, и тоже без всякого асма. 3 уже реализовано мной и poli-smen'ом более рационально. Единственное что да, было бы неплохо с т.з. наглядности оформить получше и может быть разбить на части. Но это уже личное дело ТСа. jmp $ ; Happy End! The Cake Is A Lie. |
#48
|
|||
|
|||
Цитата:
|