![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CALLBACK - это stdcall или что? [D7, Win2k]
Fay © (2004-12-30 15:47:00)Что это означает-то хоть?
Fay (2004-12-30 23:38:00) [1]2 Sergey_Masloff (30.12.04 21:09) [15]
> это видимо имелось в виду?
Видимо, да. Но я туда так и не добрался. Бывает 8(.
Sergey_Masloff (2004-12-30 21:09:00) [2]Fay © (30.12.04 19:26) [12]
>Ну вот я увидел (к примеру) следующее
>typedef DWORD (CALLBACK *EDITSTREAMCALLBACK)(DWORD_PTR >dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb);
>Какие выводы по сабжу я должен сделать?
Ну прототип функции принимающей 4 параметра и возвращающей dword и с соглашением о вызове CALLBACK
а, ты имеешь в виду что под CALLBACK? Ну там в среде можно сделать goto definition и увидеть что-то типа
#define CALLBACK __stdcall
это видимо имелось в виду?
Fay (2004-12-30 20:11:00) [3]Да. Куда делать "paste"?
Суслик (2004-12-30 19:58:00) [4]
> Какие выводы по сабжу я должен сделать?
умеешь пользоваться copy+paste
Fay (2004-12-30 19:26:00) [5]2 Суслик © (30.12.04 17:26) [11]
>> Бог в помощь
И Вам того же
>> Ну чтобы кода в с++ сидишь она искала в h из PSDK, а не из тех, с которыми была поставлена (студия в смысле).
Ну вот я увидел (к примеру) следующее
typedef DWORD (CALLBACK *EDITSTREAMCALLBACK)(DWORD_PTR dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb);
Какие выводы по сабжу я должен сделать?
Суслик (2004-12-30 17:26:00) [6]
> (кстати, "зарегистрируй ее" - кого?).
PSDK...
Ну чтобы кода в с++ сидишь она искала в h из PSDK, а не из тех, с которыми была поставлена (студия в смысле).
> Думаю, я воспользовался способом попроще и подешевле - спасибо
> МД 8).
Бог в помощь
Fay (2004-12-30 16:52:00) [7]2 Суслик © (30.12.04 16:44) [9]
Спасибо, никогда бы не догадался (кстати, "зарегистрируй ее" - кого?).
Думаю, я воспользовался способом попроще и подешевле - спасибо МД 8).
-=SS=- (2004-12-30 16:44:00) [8]Calling conventions
Directive Parameter order Clean-up Passes parameters in registers?
register Left-to-right Routine Yes
pascal Left-to-right Routine No
cdecl Right-to-left Caller No
stdcall Right-to-left Routine No
safecall Right-to-left Routine No
Т.е смотря с какой библиотеки ты узаешь кэлбэк функции
Суслик (2004-12-30 16:44:00) [9]
> [6] Fay © (30.12.04 16:09)
> 2 Digitman © (30.12.04 16:07) [4]
> Спасибо 8) А то в PSDK я не нашёл, нафиг они пишут CALLBACK.
Поставь VS (у меня 6ая версия), поставь PSDK, зарегистрируй ее.
СОздай проект и пользуйся "find declaration".
Очень удобно.
Sergey_Masloff (2004-12-30 16:15:00) [10]Fay © (30.12.04 15:47)
>Что это означает-то хоть?
см. WinDef.h
Ну вобщем если пишешь не для MAC где это PASCAL то таки __stdcall
Fay (2004-12-30 16:09:00) [11]2 Digitman © (30.12.04 16:07) [4]
Спасибо 8) А то в PSDK я не нашёл, нафиг они пишут CALLBACK.
Fay (2004-12-30 16:08:00) [12]2 aus (30.12.04 16:06) [3]
Ага. Именно поэтому я и задал вопрос. Так ты подумал?
Digitman (2004-12-30 16:07:00) [13]
> Что это означает-то хоть?
в переводе с буржуйского
CALLBACK = обратный (встречный) вызов
stdcall = standard call = стандартное соглашение о вызове п/программы
в общем случае термины не имеют отношания друг к другу
в частном же (WinAPI) п/программы, определяемые и используемые как CALLBACK-п/программы, должны соблюдать stdcall-соглашение о вызове
aus (2004-12-30 16:06:00) [14]Fay © (30.12.04 15:47)
ты думаешь, что все, где есть CALL - одно и то же?
BillyJeans (2004-12-30 15:49:00) [15]пожалуй 1го января утром, это будет одно и тоже..
BillyJeans (2004-12-30 15:48:00) [16]:o)