Red de conocimiento informático - Problemas con los teléfonos móviles - Programación Winapi

Programación Winapi

Para WINAPI, consulte el archivo de encabezado windef.h

#Define WINAPI__stdcall

De forma predeterminada, nuestras llamadas a funciones siguen las reglas __stdcall. Por supuesto, también existen reglas como __cdecl y __pascal.

No es particularmente necesario utilizar __stdcall o __cdecl o __pascal en programación pura de Windows.

_ _Llamada estándar:

1. Realice una llamada a la función y los parámetros de la función se apilan primero a la derecha.

2. Al mismo tiempo, __stdcall estipula que la función llamada es responsable de reciclar la pila (la persona que llama solo es responsable de empujar la pila). Digresión: la regla de llamada de __pascal es de izquierda a derecha, que es exactamente lo opuesto a __stdcall.

3.C #La convención de llamada predeterminada es insertar parámetros en la pila de derecha a izquierda, y la persona que llama saca los parámetros de la pila. La persona que llama mantiene la pila de memoria para pasar argumentos (debido a esto, las funciones que implementan vararg (como printf) solo pueden usar esta convención de llamada). Por supuesto, estas tareas las realiza la propia aplicación, sin necesidad de que lo hagan los escritores. El lenguaje ensamblador es otro asunto (POP SP POP BP, etc. Además, las convenciones para la modificación del nombre de la función también son diferentes. _cdecl es el método de llamada predeterminado para programas C y C. Cada función que la llama contiene código para borrar la pila, por lo que el tamaño del archivo ejecutable generado será mayor que el de llamar a la función _stdcall. Las funciones se apilan de derecha a izquierda. VC agregará un prefijo de guión bajo antes del nombre de la función después de compilar la función.