Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2649 connectés 

 


Dernière réponse
Sujet : Pb avec CreateWindow
HelloWorld

Citation :

Donc on ne peut pas distinguer différentes instances du meme programme avec ca


 
Oui, c'est pour ca que le terme instance n'a rien à voir ... c'est comme wParam et lParam ...
wParam c'est censé être WORD PARAM = 16 bits
et pourtant ils sont tous les 2 32 bits ...
 
Pour détecter 2 "instances", il faut en effet créer un Mutex.
Au lancement de ton programme, tu créés un mutex avec un nom que tu as choisi. Si le création a échoué, c'est que ce Mutex existe déjà = il y a déjà une instance de ton programme qui tourne et qui a créé le Mutex. Donc tu quittes.
Si tu es sous WinXP, il faut cependant savoir que ton Mutex sera unique au sein d'une session.
WinXP permet en effet d'avoir plusieurs sessions ouvertes en même temps (~ plusieurs utilisateurs connectés).
Un Mutex n'est unique qu'au sein d'une session.
Si tu veux vraiment qu'1 seule instance de ton programme s'execute sur la machine (mis à part l'access hardware comme pour un graveur par exemple, je vois pas trop l'utilité), il faut préfixer le nom de ton Mutex par "GLOBAl\" ... sacahnt que le "\" n'est pas supporte par toutes les versions de Windows, faut détecter l'OS et tout et tout ...


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
HelloWorld

Citation :

Donc on ne peut pas distinguer différentes instances du meme programme avec ca


 
Oui, c'est pour ca que le terme instance n'a rien à voir ... c'est comme wParam et lParam ...
wParam c'est censé être WORD PARAM = 16 bits
et pourtant ils sont tous les 2 32 bits ...
 
Pour détecter 2 "instances", il faut en effet créer un Mutex.
Au lancement de ton programme, tu créés un mutex avec un nom que tu as choisi. Si le création a échoué, c'est que ce Mutex existe déjà = il y a déjà une instance de ton programme qui tourne et qui a créé le Mutex. Donc tu quittes.
Si tu es sous WinXP, il faut cependant savoir que ton Mutex sera unique au sein d'une session.
WinXP permet en effet d'avoir plusieurs sessions ouvertes en même temps (~ plusieurs utilisateurs connectés).
Un Mutex n'est unique qu'au sein d'une session.
Si tu veux vraiment qu'1 seule instance de ton programme s'execute sur la machine (mis à part l'access hardware comme pour un graveur par exemple, je vois pas trop l'utilité), il faut préfixer le nom de ton Mutex par "GLOBAl\" ... sacahnt que le "\" n'est pas supporte par toutes les versions de Windows, faut détecter l'OS et tout et tout ...

Harkonnen

letoII a écrit a écrit :

 
 
Oui c'est ce que préconise microsoft




Disons qu'ils se foulent pas trop ! Hormi les mutex, y'a pas trop le choix de toute façon

LetoII

Harkonnen a écrit a écrit :

Je pense que pour distinguer les différentes instances, il faut passer par des Mutex




 
Oui c'est ce que préconise microsoft

Harkonnen Je pense que pour distinguer les différentes instances, il faut passer par des Mutex
Ace17 Ok, donc le hInstance n'est qu'une addresse mémoire virtuelle, et on récupere la meme chose avec GetModuleHandle...
Donc on ne peut pas distinguer différentes instances du meme programme avec ca

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)