Что означает «winapi» в основной функции?
Вопрос
Не могли бы вы объяснить мне WINAPI
Слово в WinMain()
функция?
Самым простым способом ..
#include <windows.h>
int -->WINAPI<-- WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);
return 0;
}
Это просто какой -нибудь фанк -режим Windows?
Что оно делает? Или, скорее, что это за функция C ++, которую я еще не столкнулся?
Решение
WINAPI
макрос, который оценивает __stdcall
, ключевое слово Microsoft-специфическое, которое указывает вызову, где Callee очищает стек. Вызывчик функции и Callee должны договориться о вызовом, чтобы избежать повреждения стека.
Другие советы
Это определение макроса, предназначенное для обозначения Конвенции о вызове Windows. Из MSDN:
То, как название оформлено, зависит от языка и того, как компилятор инструментаруется предоставить функцию доступной, то есть конвенция по вызову. Стандартное межпроцессорное соглашение о вызове для Windows, используемых DLLS, известно как конвенция Winapi. Он определяется в файлах заголовка Windows как Winapi, который, в свою очередь, определяется с использованием Declarator win32 __stdcall.
Winapi - это макрос, который расширяется до __stdcall что означает, что Callee очищает стек.
Это специфично для Windows. Это указывает вызову. Winmain вызывается Windows, и это гарантирует, что вызывающий абонент и Callee согласны с вызовом.