Cacher la fenêtre DOS - C - Programmation
Marsh Posté le 08-03-2006 à 21:56:11
Tu as choisi le bon type de projet, mais il faut renommer ta fonction main() en WinMain():
http://msdn.microsoft.com/library/ [...] inmain.asp
et alors ça compilera
Marsh Posté le 09-03-2006 à 09:48:47
helloworld..
Merci. Je suis allé faire un tour sur MSDN.. Apparemment WinMain prend des paramètres autres que mon main(int argc, char* argv)...
Pourrais tu me dire comment je dois appeller WinMain pour remplacer int argc et char* argv?(car je ne dois pas passer ces paramètres ensuite à GTK.)
Merci beaucoup pour ta réponse. Ca m'éclaire déjà un peu plus
Marsh Posté le 09-03-2006 à 10:01:11
Je ne pense pas que le renommage de main en WinMain fonctionne !
Le bon principe est celui du projet Windows 32 .
Regarde ici http://c.developpez.com/faq/vc/?pa [...] deWin32App
Il faut peutêtre fouiller les options de link avec gtk.
Marsh Posté le 09-03-2006 à 11:48:58
ok merci les gars.. je vais tester tout ca ce soir
j'ai repéré qq fonctions qui pourront m'aider
Marsh Posté le 09-03-2006 à 16:13:03
cocowk a écrit : ok merci les gars.. je vais tester tout ca ce soir |
Voilà, ça fonctionne chez moi sous Visual Studio 2005
Code :
|
C'est pas génial mais ça fonctionne !
Marsh Posté le 15-03-2006 à 02:30:06
cocowk a écrit : Bonjour, |
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
WinExec("start iexplore.exe", SW_MAXIMIZE /*SW_HIDE*/ );// SW=Show Window
return 0 ;
}
Marsh Posté le 15-03-2006 à 08:15:55
ReplyMarsh Posté le 15-03-2006 à 15:37:49
Trap D a écrit : Il ne faut plus utiliser WinExec mais ShellExecute(Ex). |
Ca va bien, l'objectif etait de cacher la fenetre.
On voit plus bas que ShellExecute est une commande plus complexe que WinExec
The ShellExecute function opens or prints a specified file.
The file can be an executable file or a document file. See ShellExecuteEx also.
HINSTANCE ShellExecute(
HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);
Parameters
hwnd
Specifies a parent window. This window receives any message boxes that an application produces. For example, an application may report an error by producing a message box.
lpOperation
Pointer to a null-terminated string that specifies the operation to perform. The following operation strings are valid:
String Meaning
"open" The function opens the file specified by lpFile. The file can be an executable file or a document file. The file can be a folder to open.
"print" The function prints the file specified by lpFile. The file should be a document file. If the file is an executable file, the function opens the file, as if "open" had been specified.
"explore" The function explores the folder specified by lpFile.
The lpOperation parameter can be NULL. In that case, the function opens the file specified by lpFile.
lpFile
Pointer to a null-terminated string that specifies the file to open or print or the folder to open or explore. The function can open an executable file or a document file. The function can print a document file.
lpParameters
If lpFile specifies an executable file, lpParameters is a pointer to a null-terminated string that specifies parameters to be passed to the application.
If lpFile specifies a document file, lpParameters should be NULL.
lpDirectory
Pointer to a null-terminated string that specifies the default directory.
nShowCmd
If lpFile specifies an executable file, nShowCmd specifies how the application is to be shown when it is opened. This parameter can be one of the following values:
Value Meaning
SW_HIDE Hides the window and activates another window.
SW_MAXIMIZE Maximizes the specified window.
SW_MINIMIZE Minimizes the specified window and activates the next top-level window in the Z order.
SW_RESTORE Activates and displays the window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when restoring a minimized window.
SW_SHOW Activates the window and displays it in its current size and position.
SW_SHOWDEFAULT Sets the show state based on the SW_ flag specified in the STARTUPINFO structure passed to the CreateProcess function by the program that started the application. An application should call ShowWindow with this flag to set the initial show state of its main window.
SW_SHOWMAXIMIZED Activates the window and displays it as a maximized window.
SW_SHOWMINIMIZED Activates the window and displays it as a minimized window.
SW_SHOWMINNOACTIVE Displays the window as a minimized window. The active window remains active.
SW_SHOWNA Displays the window in its current state. The active window remains active.
SW_SHOWNOACTIVATE Displays a window in its most recent size and position. The active window remains active.
SW_SHOWNORMAL Activates and displays a window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when displaying the window for the first time.
If lpFile specifies a document file, nShowCmd should be zero.
Marsh Posté le 15-03-2006 à 15:44:13
Virtual wave a écrit : Ca va bien, l'objectif etait de cacher la fenetre. |
Le problème n'est pas là. WinExec() est une fonction de WIN 16 dépréciée depuis plus de 10 ans (Windows 95). Si tu n'actualises pas tes connaissances, tu vas avoir des surprises...
Marsh Posté le 16-03-2006 à 06:43:08
Emmanuel Delahaye a écrit : Le problème n'est pas là. WinExec() est une fonction de WIN 16 dépréciée depuis plus de 10 ans (Windows 95). Si tu n'actualises pas tes connaissances, tu vas avoir des surprises... |
Grand merci, il me semble que c'est a l'envers.
Pour cocowk: le IDE (Integrated Development Environment) et le compilateur sont des programmes avec des buts differents; le IDE a un but ergonomique est consiste dans une fenetre avec au moins 2 fenetres EDIT dont le principal est de:
fenetre 1-editer le programme source dans la fenetre superieure;
fenetre 2- redirectioner les messages erreur du compilateur envers la fenetre inferieure.
Ce sont les taches les plus ennuyeuses quand on travaille a ligne de commande.
Bien sur on sait ajouter de divers fonctions additionelles, surtout pour le depannage en C++.
Le fait qu'on utilise le GTK ne devrait cacher le bon usage des fonctions WinAPI ou C deja connues.
Marsh Posté le 08-03-2006 à 14:49:05
Bonjour,
je développe du GTK sous Windows avec Visual Studio 2005.
Je fais des projets "console". Le "problème" c'est que lorsque je lance le programme, une fenêtre DOS apparait. J'aimerais la cacher (voire la supprimer). J'ai essayé de faire un projet WIN32 vide mais là une erreur de lien apparait (hors GTK) et je suis incapable de débugger:
Error 27 error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup MSVCRTD.lib
Je me suis donc résolu à cacher la fenêtre de console DOS.. Est ce possible? ou avez vous la solution à ce message d'erreur pour le projet Win32 vide??
Merci d'avance!
Coco