was bedeutet WINAPI stehen für
Habe ich angefangen, zu lernen Win32-API in C.
Ich sah, dass die main-Funktion ist so etwas wie
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow) { .. }
aber ich weiß, dass eine Funktion in C ist wie
[ReturnType] [FunctionName] (Args) { .. }
In diesem Fall ist der Rückgabetyp int und der name der Funktion wird WinMain.
Was macht also die WINAPI stehen, und ist es notwendig?
Danke . 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist die Angabe der Aufruf-Konvention, das ist, wie Argumente an Funktionen platziert und verwaltet den stack.
Können Sie mischen Aufrufkonventionen, sagen, wenn Sie anrufen, einige externen code, wie windows-APIs, solange alle auf der gleichen "Seite" mit Ihren Erwartungen.
Typischen c-Aufrufe sind zusammengestellt mit dem, was ist bekannt als cdecl. In cdecl bereinigt der Aufrufer die Argumente auf den stack geschoben.
WINAPI, auch bekannt als "standard call" bedeutet, dass die aufgerufene Funktion ist verantwortlich für die Reinigung der Stapel seiner Argumente.
Den MS compiler-Präfix eine cdecl-Aufruf mit einem _, während ein WINAPI ruft einer der führenden _ und bekommt eine @{BYTES BENÖTIGT} vorangestellt, um den Namen der Funktion, wenn es verstümmelt die Funktion Namen. Aus dem link oben:
Es ist "calling convention", die als makro definiert mit
#define
und löst__stdcall
.Lesen Sie mehr auf der MSDN-Website:
Win - Die Windows -
API - Application Programming Interface
Windows-Anwendung Programming Interface
WINAPI
Aufrufkonvention als über den Begriff selbst.