Re[3]: __cdecl и Co
От: fay Украина www.bekhter.net
Дата: 05.08.05 11:38
Оценка: 1 (1)
Здравствуйте, Warturtle, Вы писали:

W>Здравствуйте, Odi$$ey, Вы писали:



OE>>
OE>>Согла-       Порядок          Очистка           Расширение           Примечания
OE>>шение        передачи         стека             имени
OE>>вызова       аргументов                        
OE>>

OE>>
                                          

OE>>__stdcall    Справа           Вызванная         К имени функции      Используется почти
OE>>             налево          функция сама      добавляется пре-     всеми системными
OE>>             может            удаляет свои      фикс из символа      функциями; 
OE>>             наоборот - ?     аргументы из      подчеркивания        Используется по
OE>>                              стека.            и суффикс из сим-    умолчанию внут-
OE>>                                                вола @, за которым   ренними функциями
OE>>                                                следует десятич-     Visual Basic
OE>>                                                ный размер списка
OE>>                                                аргументов в бай-
OE>>                                                тах: например,
OE>>                                                _Foo@12
OE>>

С каких пор

__stdcall
Microsoft Specific

The __stdcall calling convention is used to call Win32 API functions. The callee cleans the stack, so the compiler makes vararg functions __cdecl. Functions that use this calling convention require a function prototype.


Argument-passing order Right to left.
Argument-passing convention By value, unless a pointer or reference type is passed.
Stack-maintenance responsibility Called function pops its own arguments from the stack.
Name-decoration convention An underscore (_) is prefixed to the name. The name is followed by the at sign (@) followed by the number of bytes (in decimal) in the argument list. Therefore, the function declared as int func( int a, double b ) is decorated as follows: _func@12
Case-translation convention None

The /Gz compiler option specifies __stdcall for all functions not explicitly declared with a different calling convention.

Best regards,
Oleg Bekhter
Software Developer
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.