|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#10
|
|||
|
|||
А по теме.
тебе нужно разбить твою супер функцию на две или три части. Первая - получения адреса функции из 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; |