powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / __stdcall, CALLBACK, pascal ?
11 сообщений из 11, страница 1 из 1
__stdcall, CALLBACK, pascal ?
    #34181730
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrm0000000005
Как бы узнать что такое __stdcall, CALLBACK, pascal - для чего, почему и с чем едят.
Если возьметесь объяснять то по проще если можно, а то ведь я Beginner , если будет ответ - благодарю.
...
Рейтинг: 0 / 0
__stdcall, CALLBACK, pascal ?
    #34181903
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это модификаторы вызова функций. Узнать что это за макроопределения в среде MS Visual C++ - элементарно: выделить и в контестном меню выбрать GO TO DECLARATION, откроется файл windef.h... В Borland C++ Builder почему то не находятся макросы, но опять же можно посмотреть все в этом же файле.

Код: plaintext
1.
2.
3.
4.
#define APIENTRY    WINAPI
#define PASCAL      __pascal
#define WINAPI      __stdcall
#define CDECL       _cdecl

и там много подобной фигни... кроме того они еще и разные для разных платформ и много там разных вариантов других учитывается с помощью прекомпиляции. Тебе стоит просто посидеть и разобраться... это не сложно...

в основном используются модификаторы __pascal (функция вызывается по правилам Паскаля) и _cdecl (по правилам Си)
...
Рейтинг: 0 / 0
__stdcall, CALLBACK, pascal ?
    #34181906
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обратный вызов (CALLBACK) кстати тоже стандартный:

Код: plaintext
#define CALLBACK    __stdcall
...
Рейтинг: 0 / 0
__stdcall, CALLBACK, pascal ?
    #34183016
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, но так было не всегда.
...
Рейтинг: 0 / 0
__stdcall, CALLBACK, pascal ?
    #34183039
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это модификаторы вызова функций. Узнать что это за макроопределения

__stdcall и т.п. - не макросы, а ключевые слова компилятора. Макрос только CALLBACK.
(pascal тоже может быть макросом, но не __pascal )

в основном используются модификаторы __pascal (функция вызывается по правилам Паскаля)

__pascal сейчас как раз очень редко используется.

Так что в основном используются __cdecl и __stdcall.
...
Рейтинг: 0 / 0
__stdcall, CALLBACK, pascal ?
    #34183949
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
паскаль сдох.
cdecl — параметры суются в обратном порядке, стек освобождает вызывающая функция, можно передавать переменное число параметров.
stdcall — параметры суются в обратном порядке, стек освобождает вызываемая функция через ret n, нельзя передавать переменное число параметров.
...
Рейтинг: 0 / 0
__stdcall, CALLBACK, pascal ?
    #34184682
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на MSDN какую нибудь ссылку по теме не дадите? Ведь только там нормальная обучающая информация я так понял есть?
...
Рейтинг: 0 / 0
__stdcall, CALLBACK, pascal ?
    #34184691
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XEDЭто модификаторы вызова функций. Узнать что это за макроопределения в среде MS Visual C++ - элементарно: выделить и в контестном меню выбрать GO TO DECLARATION, откроется файл windef.h... В Borland C++ Builder почему то не находятся макросы, но опять же можно посмотреть все в этом же файле.

Код: plaintext
1.
2.
3.
4.
#define APIENTRY    WINAPI
#define PASCAL      __pascal
#define WINAPI      __stdcall
#define CDECL       _cdecl

и там много подобной фигни... кроме того они еще и разные для разных платформ и много там разных вариантов других учитывается с помощью прекомпиляции. Тебе стоит просто посидеть и разобраться... это не сложно...

в основном используются модификаторы __pascal (функция вызывается по правилам Паскаля) и _cdecl (по правилам Си)

Чего то я не нахожу GO TO DECLARATION, у меня VC 6.0.
...
Рейтинг: 0 / 0
__stdcall, CALLBACK, pascal ?
    #34184880
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginnerЧего то я не нахожу GO TO DECLARATION, у меня VC 6.0.
А почему я тогда у себя нахожу?
Впрочем, всегда можно просто так открыть файл
Код: plaintext
<windef.h>
...
Рейтинг: 0 / 0
__stdcall, CALLBACK, pascal ?
    #34186490
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginnerА на MSDN какую нибудь ссылку по теме не дадите?на мсдне есть поиск !
...
Рейтинг: 0 / 0
__stdcall, CALLBACK, pascal ?
    #34188193
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / __stdcall, CALLBACK, pascal ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]