Главная страница
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.038 c
1-1080023465
terra
2004-03-23 09:31
2004.04.11
Проблемы с прорисовкой окна


3-1079340258
GIL
2004-03-15 11:44
2004.04.11
select и создание поля


9-1065284888
m2003
2003-10-04 20:28
2004.04.11
Как через OpenGL вывести BMP на экран?


14-1079620833
Nikolay M.
2004-03-18 17:40
2004.04.11
Кто сексуальнее, финансист или программист?


6-1079455858
TRT
2004-03-16 19:50
2004.04.11
ServerSocket лист каталогов