Win32,main aussi court que possible ou pas?

Messages postés
140
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
30 septembre 2009
- - Dernière réponse : BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
- 31 mars 2004 à 21:05
salut a tous

ben voila, en C(++), il se dit que la fonction main doit etre aussi courte que possible.
en est-il de meme pour les WinMain?
Afficher la suite 

17 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
Tu entends quoi par 'aussi court que possible' ?

Une base: vire les RegisterClass et ses structures dans une func dediee, pour resumer tout ce qui a besoin de variables qui n'ont pas a rester, sera autant de gagne sur la stack.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
140
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
30 septembre 2009
2
0
Merci
ben ya des programmes dont leurs main fait 2 lignes :

main() {
test();
return;
}

je pense notemment a eMule ki est un gros programme...
Commenter la réponse de s@ldon
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
dans cet exemple srait plutot le contraire alors, tout ce qui est dans test() irait aussi bien dans main().

Il n'y a pas de regle generale, c'est une question de jugeotte.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
140
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
30 septembre 2009
2
0
Merci
d'accor, dis moi si ce genre de structure est mieux que tout regroupé dans un WinMain :

#include "main.h"

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
void verif_app(HWND,LPCSTR);
bool InitFenetre(HINSTANCE);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
MSG msg;
if(!InitFenetre(hInstance))
return 0;
while (GetMessage(&msg,0,0,0))
     {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
     }
     return msg.wParam;
}

void verif_app(HWND hand,LPCSTR classe)
{
if (hand=FindWindow(classe,0))
{
ShowWindow(hand,1);
SetForegroundWindow(hand);
exit(0);
}
}

bool InitFenetre(HINSTANCE hInstance)
{
static char nom_classe[] = "onsenfou";
HWND hand;
WNDCLASS classe;

verif_app(hand,nom_classe);
classe.style = CS_HREDRAW | CS_VREDRAW;
classe.lpfnWndProc = WndProc;
classe.cbClsExtra = 0;
classe.cbWndExtra = 0;
classe.hbrBackground = (HBRUSH)(COLOR_WINDOW+9);
classe.hInstance = hInstance;
classe.lpszClassName = nom_classe;
classe.hCursor = LoadCursor(NULL,IDC_ARROW);
classe.hIcon = LoadIcon(NULL,IDI_APPLICATION);
classe.lpszMenuName = 0;

if (!RegisterClass(&classe)) 
{
MessageBox(0,"Impossible de creer la fenetre...","erreur",MB_OK);
return 0;
}
hand = CreateWindow(nom_classe,"application",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,
100,800,600,0,0,hInstance,0);
if (!hand)
{
MessageBox(0,"hWnd","erreur",MB_OK);
return false;
}
ShowWindow(hand,1);
UpdateWindow(hand);
return true;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
     {
case WM_DESTROY:
          PostQuitMessage (0) ;
          return 0 ;
     }
     return DefWindowProc (hwnd, message, wParam, lParam) ;
}

Commenter la réponse de s@ldon
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
Voila qui ira tres bien.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
140
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
30 septembre 2009
2
0
Merci
oki, et pour faire une toolbar? :big)

je cherche a y rajouter une toolbar avec des bouttons texte+bitmap.
tu pourrais me donner un exemple, j'ai cherché dans petzold, mais ya rien. :sad)
Commenter la réponse de s@ldon
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
Je regarde dans mes anciens progs si y en a un que je peux mettre en source.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
140
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
30 septembre 2009
2
0
Merci
merci, tu peut me l'envoyer directement si tu veux :
jonathan_detchart@hotmail.com
Commenter la réponse de s@ldon
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
toolbar avec images, texte et tooltip, c'est parti.
C'etait sur VS 6, nous rajeunit pas tout ça.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
140
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
30 septembre 2009
2
0
Merci
tu l'as trouvé?
tu pourrais m'envoyer les sources stp?
Commenter la réponse de s@ldon
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
mais c'est deja parti comme dit plus haut, avec sources bien entendu.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
140
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
30 septembre 2009
2
0
Merci
j'ai rien reçut, et j'ai pas trouvé ta source sur le site
c parti ou???
Commenter la réponse de s@ldon
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
J'ai poste zip a l'adresse donnee plus haut et je n'ai pas eu de retour d'erreur donc doit se ballader dans les meandres de hotmail.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
140
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
30 septembre 2009
2
0
Merci
tu peux le renvoyer stp?

jonathan_detchart@hotmail.com
Commenter la réponse de s@ldon
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
le 2eme edition est partie.
Si ne t'arrive pas, tu me passes un mail plus 'stable'.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
140
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
30 septembre 2009
2
0
Merci
rien reçut, dsl
essaie 65536@voila.fr
Commenter la réponse de s@ldon
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
allume ton msn.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews