Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2011, 11:59   #21
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в асм вставке thiscall реализован(по крайней мере та, что первая)
а как я её(функцию переходник) вызову без разницы, мне было удобнее stdcall там использовать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.07.2011, 12:45   #22
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

stdcall - вроде чистит за собой стек?
VintProg вне форума Ответить с цитированием
Старый 02.07.2011, 13:24   #23
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

да.

PS: интересно, для кого Уткин ссылку кидал? там же все расписано про соглашения вызовов...
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.07.2011, 11:51   #24
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Попытался так вызвать но нечего не выходит!!!

Код:
  CPed__giveWeapon : procedure(CPed : pointer; weaponID, ammo, _aa : integer) cdecl;
 pfGetPlayerPed     : function() : pointer;
 fReguest_model     : function(idModel, un : integer) : integer; cdecl;



procedure Player__giveWeapon;
var
 Ad : cardinal;


begin
  @CPed__giveWeapon := ptr($004FFA50);
  @pfGetPlayerPed   := ptr($004BC140);



asm
push    1
push    64h
push    11h
mov     ecx, pfGetPlayerPed
call    CPed__giveWeapon;
end;

end;
VintProg вне форума Ответить с цитированием
Старый 08.07.2011, 12:06   #25
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

И этот код не рабочий!!!

Код:
function CPed__giveWeapon(CPED:Pointer;weaponID:integer;ammo:integer;_aa:integer):integer;stdcall;
asm
 mov eax,_aa
 push eax
 mov eax,ammo
 push eax
 mov eax,weaponID
 push eax
 mov eax,CPED
 push eax
 mov eax,$4FFA50
 call eax
end;
VintProg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вызов метода неинициализированной переменной класса coinkrsk Общие вопросы C/C++ 4 02.01.2011 17:26
Получение исключений из метода класса. vedro-compota Общие вопросы .NET 3 20.12.2010 11:27
Ошибка при вызове метода класса coNsept Общие вопросы C/C++ 2 14.12.2010 13:09
Передача метода класса в CreateThread mike_tihomirov Win Api 3 17.07.2010 14:13
Адрес метода класса? VintProg Общие вопросы Delphi 6 27.09.2009 13:10