Dialog depuis dll (win32)

Soyez le premier à donner votre avis sur cette source.

Vue 5 858 fois - Téléchargée 747 fois

Description

Exe affiche une dialog se trouvant dans une DLL.

Réponse forum:
http://www.cppfrance.com/forum.v2.aspx?ID=824072

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
typedef struct _BNDLGPARAM {
HWND howner;
TCHAR *psztitle;
TCHAR *pszinfo;
} BNDLGPARAM, *LPBNDLGPARAM;

Tu as vu cette déclaration de structure en haut, elle ne sert qu'à indiquer au compilo comment (à quel offset) récupérer l'élément demandé, bien pour cela que je reprends stricto l'ordre et le type des params reçus en entrée, ainsi offsets seront toujours valables. La fonction affichant un dialog modal, aucun risque que les params soient dépilés et donc adresses invalides.
Résultat des courses, je n'empile absolument rien, tout benef.
Messages postés
11
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
11 mars 2007

Je cherchais justement un exemple depuis un bon moment, à telle point que je commencais à croire que c'était impossible.
Merci.
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Comment tu fais pour récupérer ta structure en passant seulement le paramètre &howner dans ta fonction DialogBoxParam

nt __stdcall ShowDlgDll(HWND howner, TCHAR *psztitle, TCHAR *pszinfo)
{
return DialogBoxParam(thismod, MAKEINTRESOURCE(IDD_DLGDLL), howner, DllDlgProc, (LPARAM) &howner);
}

case WM_INITDIALOG:
SetWindowText(hdlg, ((LPBNDLGPARAM) lParam)->psztitle);
SetDlgItemText(hdlg, IDST_INFO, ((LPBNDLGPARAM) lParam)->pszinfo);
return 1;

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.