Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

stdcall Есть ли принципиальная разница ?   Найти похожие ветки 

 
Learner ©   (2004-04-20 09:00) [0]

Пишу так:
Type
TMyFunction=function(Param1:DWord;Param2:Ansistring;Param3:Boolean):Boolean;stdcall;

function TestFunction(Param1:DWord;Param2:Ansistring;Param3:Boolean):Boolean;stdcall;
begin
Result:=True;
end;

function BaseFunction(Par1:DWord;Par2:Ansistring;Par3:Boolean;MyFunction:TMyFunction):DWord;
begin
if MyFunction(Par1,Par2,Par3) then Result:=10 else Result:=20;
end;

Где-то:
ShowMessage(IntToStr(BaseFunction(0,"string",True,@TestFunction)));

Все работает, но все работает и, если убрать stdcall.
В чем разница ?


 
Anatoly Podgoretsky ©   (2004-04-20 09:02) [1]

В соглашениях вывод, смотри справку по ним, их имеется 6 штук.


 
MBo ©   (2004-04-20 09:04) [2]

Разницы в результате нет, если указано одно соглашение о вызове в обоих случаях.


 
SammIk ©   (2004-04-20 09:05) [3]

А ты попробуи не ставить, посмотришь что получится))
Скажем через 10-100 вызовов.
Разница в том как будет чистится стек, после их использования.
как передаются данные в ф-ю, как возвращаются .......


 
SammIk ©   (2004-04-20 09:06) [4]

Да простят мне боги если я не прав)


 
VAleksey ©   (2004-04-20 09:07) [5]

Зачем вообще употреблять соглашение о вызовах если функции в одном проекте?
Или я не прав?


 
Anatoly Podgoretsky ©   (2004-04-20 09:09) [6]

SammIk ©   (20.04.04 09:06) [4]
Да не прав, не получится и двух вызовов.


 
SammIk ©   (2004-04-20 09:15) [7]

У меня была ошибка, я вместо cdcal stdcall делал,
дак работала, могла и поболее раз выполнятся.
Раз на раз не приходится, иногда и спервого раза прога выподала
в рантаим ерор, но это потом я присек.
Так что могет и больше чем 1-2 раза выполнится, но мало вероятно)


 
Anatoly Podgoretsky ©   (2004-04-20 09:22) [8]

Ты камикадже или на рубашку есть надежда?


 
PVOzerski ©   (2004-04-20 09:57) [9]

SammIk ©   (20.04.04 09:15) [7]:
перепутать stdcall и cdecl - это особый случай. Дело в том, что ты параметры получишь правильно, а вот по выходе стек попортишь.



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
14-1079338530
Andryk
2004-03-15 11:15
2004.04.11
Ура появилась новая тема для флейма про самолеты :о)))) !!!!


3-1078993755
Владимир Р.
2004-03-11 11:29
2004.04.11
Вопрос по кодировке Foxpro


3-1081238047
slavon
2004-04-06 11:54
2004.04.11
Десятичный разделитель в dbExpress под Kylix2


1-1079974837
Destroyer
2004-03-22 20:00
2004.04.11
Как узнать caption по хэндлу


6-1079554274
DEMON_XXX
2004-03-17 23:11
2004.04.11
Как получить e-mail адреса из контактной книги Outlook