Dans l'article précédent, nous avons présenté windows Connaissance de la classification des programmes sous le système, des compilateurs, des connecteurs, des fichiers d'en-tête couramment utilisés, des fichiers de bibliothèque, etc. Cet article parlera du processus de compilation du programme.
Je crois que tout le monde sait que le processus de compilation du code source est divisé en deux étapes : l'une est le processus de compilation, le travail principal est de traduire notre code source en fichiers intermédiaires, qui sont dans Windows, c'est ce que fait cl.exe, il convertira notre fichier .c ou Les fichiers .cpp sont traduits en fichiers .obj intermédiaires ; le second est le processus de connexion, le travail principal est de connecter divers fichiers intermédiaires et bibliothèques ; fichiers pour générer des fichiers exécutables, c'est ce que link.exe fait dans windows, ce sera .obj Les fichiers et les fichiers de bibliothèque sont liés dans des programmes exe.
Cet article vous apprend principalement à vous débarrasser de l'IDE de VS et à utiliser la ligne de commande pour utiliser cl.exe et link.exe compilent et lient des programmes.
D'abord nous créons un nouveau fichier test.txt, puis le renommeons en text.c Dans ce fichier nous remplissons le code suivant : <.>
#include "windows.h" int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { MessageBox(NULL,"Hello Win32","sdk",MB_ABORTRETRYIGNORE|MB_ICONERROR); return 0; }
importe tous les fichiers d'en-tête dont nous avons besoin pour le système windows. Ensuite, nous avons présenté la fonction principale du programme de fenêtre windows wWinMain. Voici une brève explication de la fonction de chaque paramètre formel de Winmain : hInstance est le handle d'instance du programme actuel, qui est la mémoire où se trouve le programme actuel. L'emplacement hPrevInstanceLe handle de l'instance précédente du programme actuel, qui est actuellement abandonné ; est le paramètre de ligne de commande, c'est-à-dire que nous utilisons la ligne de commande Lors de l'exécution du programme, vous pouvez attacher des chaînes comme paramètres nCmdShow ; le mode d'affichage de la fenêtre, maximiser ou minimiser. Nous avons appelé MessageBox dans la fonction principale pour définir une boîte de dialogue modale. Si la compilation réussit, une boîte de dialogue apparaîtra après l'exécution du programme. Maintenant que le fichier Test.c
a été écrit, la prochaine chose que nous devons faire est de compiler et de lier les fichiers séparément.Trois
cmd outil de ligne de commande, puis passez à notre répertoire de travail actuel et utilisez la commande suivante pour compiler le fichier Test.c : Cl.exe /c test.c
Une fois la compilation terminée, le fichier intermédiaire test.obj sera généré dans le répertoire de travail :
Si votre invite de ligne de commande ne parvient pas à trouver la commande cl.exe et d'autres informations similaires, je pense que vous devez comprendre que cela est dû à l'environnement la variable n'existe pas Pour importer le répertoire où se trouve cl.exe, nous pouvons d'abord ajouter la variable d'environnement ou l'importer en utilisant le chemin complet. Si vous avez généré le fichier test.obj, cela signifie que le processus de compilation est terminé et que nous pouvons démarrer le processus de connexion.
Ensuite, nous exécutons la commande suivante pour générer le fichier exécutable :
Link.exe test.obj user32.lib
User32.lib Cette bibliothèque dont nous avons parlé dans l'article précédent, elle contient le L'interface utilisateur souhaitée et l'API liée au message que nous devons appeler est définie dans cette bibliothèque, si rien d'autre ne se produit. le fichier exécutable test.exe doit être généré dans votre répertoire de travail :
Double-cliquez sur cet exe
OK
avec interfaceIDE pour générer une boîte de dialogue personnalisée, n'est-ce pas étonnant ? Il devrait y avoir l'expression méchante de Xiao Yueyue ici. . .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!