Domanda

Potresti per favore spiegarmi il WINAPI parola nel WinMain() funzione?

Nel modo più semplice ..

#include <windows.h>

int -->WINAPI<-- WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
    LPSTR lpCmdLine, int nCmdShow)
{
    MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);
    return 0;
}

È solo una modalità funky di Windows?

Che cosa fa? O meglio qual è questa funzione C ++ che non ho ancora incontrato?

È stato utile?

Soluzione

WINAPI è una macro che valuta __stdcall, una parola chiave specifica di Microsoft che specifica una convenzione di chiamata in cui il Callee pulisce lo stack. Il chiamante della funzione e Callee devono concordare una convenzione di chiamata per evitare di corrompere lo stack.

Altri suggerimenti

Questa è una definizione macro intesa a indicare la convenzione di chiamata di Windows. Da Msdn:

Il modo in cui il nome è decorato dipende dalla lingua e dal modo in cui il compilatore viene chiesto di rendere disponibile la funzione, ovvero la convenzione chiamante. La convenzione di chiamata interagrega standard per Windows utilizzata da DLLS è nota come Convenzione WINAPI. È definito nei file di intestazione di Windows come winapi, che a sua volta è definito utilizzando il dichiaratore di Win32 __stdcall.

Winapi è una macro che si espande a __stdcall Ciò significa che il Callee pulisce lo stack.

È specifico per Windows. Specifica la convenzione chiamante. Winmain viene chiamato da Windows e questo garantisce che il chiamante e Callee siano d'accordo sulla convention di chiamata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top