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 ?

Pourquoi MinGW renvoie-t-il une erreur « référence non définie à WinMain » lors de l'utilisation de wWinMain en C ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-05 11:23:02300parcourir

Why does MinGW throw an

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 :

  • Changez wWinMain en WinMain
  • Changez PWSTR pCmdLine en PSTR pCmdLine

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn