Resource depuis EXE ?

Résolu
cs_mayti Messages postés 36 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 11 juin 2005 - 11 juin 2005 à 12:59
Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 - 11 juin 2005 à 19:09
Bonjour tlm.



Est-ce possible d'utiliser des resources d'un exe depuis un autre exe ?



Par exemple je voudrais pouvoir utiliser une dialogbox se trouvant dans un exe dans mon programme, possible ou pas ?



merci.

5 réponses

Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 3
11 juin 2005 à 14:07
voir ma source

http://www.cppfrance.com/code.aspx?ID=31942



Il suffit de chercger l'exe avec

LoadLibrary(avec un FreeLibrary à la fin hein:))

Si tu connais l'id de ton dialog tu fais

HRSRC hRsrc=FindResource(hExe,RT_DIALOG,MAKEINTRESOURCE(wDialogId));

HGLOBAL hGlobal=LoadResource(hExe,hRsrc);

LPVOID lpRes=LockResource(hGlobal);



si tu le connais pas, faut lister les resource(regarde ma source ou MSDN)

A m a u r y
3
cs_mayti Messages postés 36 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 11 juin 2005
11 juin 2005 à 15:25
LoadLibrary("test.exe")... j'étais loin...



Merci.



Et pour :



HRSRC hRsrc=FindResource(hExe,RT_DIALOG,MAKEINTRESOURCE(wDialogId));

HGLOBAL hGlobal=LoadResource(hExe,hRsrc);

LPVOID lpRes=LockResource(hGlobal);



J'ai pas compris ? A quoi ça sert ?
0
Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 3
11 juin 2005 à 15:30
HRSRC hRsrc=FindResource(hExe,RT_DIALOG,MAKEINTRESOURCE(wDialogId));

permet de trouver la ressource dans l'exe:

RT_DIALOG: type prédéfini pour les dialog

wDialogId: l'id de la ressource



HGLOBAL hGlobal=LoadResource(hExe,hRsrc);

récupère un handle global de la ressource



LPVOID lpRes=LockResource(hGlobal);

récupère un pointeur sur les données



ensuite faut faire

DialogBoxIndirect(hInst,(LPCDLGTEMPLATE)lpRes,hwndParent,DialogProc);



si tu comprend toujours pas je posterais une source sur cppfrance . Sinon il y aussi MSDN .

A m a u r y
0
cs_mayti Messages postés 36 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 11 juin 2005
11 juin 2005 à 15:41
DialogBoxParam(hExe, (LPCTSTR)wDialogId, NULL, reinterpret_cast<DLGPROC>(&DialogProc), 0);



Ca fait la même chose en une seule ligne, non ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 3
11 juin 2005 à 19:09
oui en effet çà doit faire la même chose mais par contre:

reinterpret_cast<DLGPROC>(&DialogProc)

->pourquoi çà ???

il suffit de faire

DialogProc

normalement tu as pas besoin de cast puisque tu as une fonction qui est du bon type ou alors au pire

(DLGPROC)DialogProc

mais rien d'autre .

A m a u r y
0
Rejoignez-nous