Recherche…


Remarques

WinAPI (également connu sous le nom de Win32; officiellement appelé API Microsoft Windows) est une interface de programmation d’application écrite en C par Microsoft pour permettre l’accès aux fonctionnalités de Windows. Les principaux composants de WinAPI sont:

  • WinBase: les fonctions du noyau, CreateFile, CreateProcess, etc.
  • WinUser: les fonctions de l'interface graphique, CreateWindow, RegisterClass, etc.
  • WinGDI: les fonctions graphiques, Ellipse, SelectObject, etc.
  • Contrôles communs: Contrôles standard, vues en liste, curseurs, etc.

Voir également:

Versions

Les versions de l'API sont liées à la version du système d'exploitation. La documentation MSDN spécifie le système d'exploitation minimum pris en charge pour chaque fonction de l'API.

Bonjour le monde

Les applications Microsoft Windows sont généralement écrites sous la forme d'une application console ou d'une application fenêtrée (il existe d'autres types, tels que des services et des plug-ins). La différence pour le programmeur est la différence d’interface pour le point d’entrée principal de la source d’application fournie par le programmeur.

Lorsqu'une application C ou C ++ démarre, le point d'entrée exécutable utilisé par le chargeur exécutable est le Runtime fourni par le compilateur. Le chargeur exécutable lit l'exécutable, effectue toute correction de l'image requise, puis appelle le point d'entrée exécutable qui, pour un programme C ou C ++, est le Runtime fourni par le compilateur.

Le point d'entrée exécutable appelé par le chargeur n'est pas le point d'entrée principal fourni par le programmeur d'application, mais le Runtime fourni par le compilateur et l'éditeur de liens qui crée l'exécutable. Le runtime configure l'environnement pour l'application, puis appelle le point d'entrée principal fourni par le programmeur.

Une application console Windows peut avoir plusieurs interfaces légèrement différentes pour le point d'entrée principal fourni par le programmeur. La différence entre ces deux points est de savoir si le point d’entrée principal est le int main (int argc, char *argv[]) traditionnel int main (int argc, char *argv[]) ou si c’est la version spécifique de Windows de int _tmain(int argc, _TCHAR* argv[]) caractères dans les paramètres de l'application. Si vous générez un projet d'application de console Windows Win32 à l'aide de Visual Studio, la source générée sera la version spécifique de Windows.

Une application Windows Window (GUI) dispose d'une interface différente pour le point d'entrée principal fourni par le programmeur. Ce point d'entrée principal fourni par le programmeur possède une interface plus complexe car le runtime configure un environnement graphique et fournit des informations supplémentaires avec les paramètres de l'application.

Cet exemple explique l'interface du point d'entrée principal de la fenêtre Windows. Pour explorer ces sujets, vous devriez avoir:

  • un IDE avec compilateur (de préférence Visual Studio)
  • C connaissance

Créez un projet Windows Win32 (interface graphique, pas console) vide à l'aide de l'EDI. Les paramètres du projet doivent être définis pour une application de fenêtre (et non une application de console) afin que l'éditeur de liens puisse être lié au bon runtime. Créez un fichier main.c en l'ajoutant au projet, puis tapez le code suivant:

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, PSTR cmdline, int cmdshow)
{
    return MessageBox(NULL, "hello, world", "caption", 0);
}

Ceci est notre programme Win32 "Hello, world". La première étape consiste à inclure les fichiers d'en-tête Windows. L'en-tête principal de Windows est windows.h , mais il y en a d'autres.

WinMain est différent d'un int main() standard int main() utilisé avec une application console. Il y a plus de paramètres utilisés dans l'interface et, plus important encore, le point d'entrée principal d'une application de fenêtre utilise une convention d'appel différente de la norme C / C ++.

Le qualificatif APIENTRY indique la convention d'appel, qui est l'ordre dans lequel les arguments sont poussés sur la pile . Par défaut, la convention d'appel est la convention C standard indiquée par __cdecl . Toutefois, Microsoft utilise un type différent de convention d'appel, la convention PASCAL, pour les fonctions API Windows indiquées par le qualificatif __stdcall . APIENTRY est un nom défini pour __stdcall dans l'un des fichiers d'en-tête inclus par windows.h (voir aussi Qu'est-ce que __stdcall? ).

Les arguments suivants pour WinMain sont les suivants:

Nous n'utilisons aucun de ces arguments pour le moment.

À l'intérieur de WinMain() , se trouve un appel à MessageBox() , qui affiche une simple boîte de dialogue avec un message, une boîte de message. Le premier argument est le handle de la fenêtre du propriétaire. Comme nous n'avons pas encore notre propre fenêtre, passez NULL . Le second argument est le corps du texte. Le troisième argument est la légende et le quatrième argument contient les indicateurs. Lorsque 0 est passé, une boîte de message par défaut est affichée. Le diagramme ci-dessous dissèque la boîte de dialogue de la boîte de message.

entrer la description de l'image ici

Bons liens:

Sur les systèmes 32 bits uniquement. D'autres architectures ont des conventions d'appel différentes.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow