Pregunta

¿Podrías explicarme el WINAPI palabra en el WinMain() ¿función?

De la manera más sencilla ..

#include <windows.h>

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

¿Es solo un modo funky de Windows?

¿Qué hace? O más bien, ¿qué es esta característica C ++ que aún no he encontrado?

¿Fue útil?

Solución

WINAPI es una macro que evalúa __stdcall, una palabra clave específica de Microsoft que especifica una convención de llamadas en la que el Callee limpia la pila. La persona que llama y Callee de la función necesitan acordar una convención de llamadas para evitar corromper la pila.

Otros consejos

Esta es una definición macro destinada a denotar la convención de llamadas de Windows. De MSDN:

La forma en que se decora el nombre depende del idioma y de cómo se instruya al compilador para que la función esté disponible, es decir, la convención de llamadas. La convención estándar de llamadas entre procesos para ventanas utilizadas por DLLS se conoce como la Convención Winapi. Se define en los archivos de encabezado de Windows como Winapi, que a su vez se define utilizando el Declarador Win32 __stdcall.

Winapi es una macro que se expande a __stdcall Lo que significa que la calle limpia la pila.

Es específico de Windows. Especifica la convención de llamadas. Winmain es llamado por Windows, y esto asegura que la persona que llame y Callee acuerden la convención de llamadas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top