J'ai une application Qt, et lorsque j'exécute cette application, une console s'ouvre derrière celle-ci. En développement, c’est bien parce que je vois des sorties de débogage sur la console, mais lorsque je veux donner cet exécutable au client, il ne devrait pas y avoir de fenêtre de console.
(J'utilise Visual Studio 2008)
Il semble que votre configuration de l'éditeur de liens soit incorrecte. Cliquez avec le bouton droit sur le projet, Propriétés, Éditeur de liens, Système, paramètre Sous-système. Assurez-vous que "Windows" est sélectionné, pas "Console".
Et changez main () en WinMain ().
Dans le jeu d'options de l'éditeur de liens de construction du projet
/SUBSYSTEM:windows
/ENTRY:mainCRTStartup
Ou utilisez le #pragma suivant dans le fichier source avec le int main(...)
#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
Vous pouvez vous débarrasser de la console en appelant:
FreeConsole();
j'utilise cette méthode et cela a fonctionné
HWND hwnd = GetConsoleWindow();
ShowWindow(hwnd, 0);
Solution suivante;)
Env: WixXP x64, msvs 2008, Qt v4.5.3
Définissez les paramètres de projet/les propriétés de configuration/l'éditeur de liens/le système/le sous-système = Windows (/ SUBSYSTEM: WINDOWS).
Mais pour x64 il y a une erreur de l'éditeur de liens: LNK2019: symbole externe non résolu _WinMain référencé dans la fonction _WinMainCRTStartup " Pour l'éviter
Remplacez le code suivant:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// your code*
}
par
int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char*, int nShowCmd)
{
int argc = 0;
QApplication app( argc, 0 );
}
Cela fonctionne bien pour les deux plates-formes - Win32 et x64.
Si vous utilisez Propriétés -> Linker -> Système -> Sous-système | Les fenêtres
Et obtenez une erreur de l'éditeur de liens.
Vous pouvez regarder Linker -> Avancé -> Point d'entrée
et définissez la valeur sur le nom de votre fonction "principale".
C’est votre point d’entrée qui devient principal si votre fonction principale est un "principal".
La meilleure option sera peut-être de ne pas simplement supprimer (comme suggéré par Andy M), mais de modifier le fichier * .pro en ajoutant quelque chose comme:
CONFIG(debug, debug|release) {
CONFIG *= console
}
else {
CONFIG -= console
}
En débogage, vous pouvez voir la fenêtre de la console mais pas dans la version. Je l'aime. =)
Je suggère de vérifier la présence de la ligne suivante dans votre fichier .PRO:
CONFIG += console
Si vous pouvez le trouver, retirez-le! Cela devrait régler votre problème!
J'espère que ça aide !
Aller à: Projects --> Run
et décocher la case Run in terminal
Pour ceux qui modifient le fichier .vcxproj directement, vous souhaitez ajouter une SubSystem
avec la valeur Windows
à votre Link
ItemDefinitionGroup
comme suit:
<ItemDefinitionGroup>
<Link>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>