Maison >développement back-end >C++ >Pourquoi MinGW renvoie-t-il une erreur « référence non définie à WinMain » lors de l'utilisation de wWinMain en C ?
Résolution de la référence non définie à WinMain lors de l'utilisation de wWinMain en C (MinGW)
Lors de la tentative d'utilisation de wWinMain (HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine , int nCmdShow) comme point d'entrée du programme en C sous MinGW, une erreur "référence non définie à WinMain" peut se produire.
Cause :
MinGW, en particulier les anciennes versions , ne prend pas en charge nativement le point d'entrée wWinMain, qui attend un argument de ligne de commande à caractères larges (WCHAR).
Solution :
Il existe deux solutions potentielles :
1. Utilisez l'indicateur -municode :
Les versions plus récentes de MinGW prennent en charge l'indicateur de l'éditeur de liens -municode, qui passe à un code de démarrage alternatif permettant d'utiliser wWinMain. Ajoutez cet indicateur à votre ligne de commande, aux options de l'éditeur de liens dans votre IDE ou à Makefile :
g++ other_options_and_arguments -municode
2. Utilisez le point d'entrée WinMain :
Pour les anciennes versions de MinGW ou si vous préférez ne pas utiliser l'indicateur -municode, vous pouvez revenir à l'utilisation du point d'entrée WinMain standard. Cela nécessite de modifier votre code comme suit :
Remarque supplémentaire :
Si vous devez accéder aux arguments de ligne de commande Unicode plus tard dans votre programme, utilisez LPWSTR cmd_line = GetCommandLineW(); au lieu d'utiliser l'argument WinMain.
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!