2011-09-08 2 views
0

J'ai un code qui ressemble à ceci.CreateDialogIndirectParam se bloque sur Win 7 64 bits

hWnd = CreateDialogIndirectParam(_AtlBaseModule.GetResourceInstance(), pTemplate, 
       hWndParent, (DLGPROC)T::StartDialogProc, dwInitParam); 

Cela fonctionne parfaitement bien dans un environnement Windows XP, mais le CreateDialogIndirectParam() API semble tomber en panne dans un windows 7 64 bits d'environnement.

Si nous remplaçons le paramètre (DLGPROC)T::StartDialogProc (où 'T' est un modèle) par NULL, la boîte de dialogue s'affiche, mais elle n'a aucun contenu (comme prévu).

Cela implique que ce paramètre provoque le blocage.

Des idées?

+2

C'est un casting incroyablement malsain. Supprimez (DLGPROC) et corrigez votre code lorsque le compilateur se plaint. –

+0

Ressemble presque exactement à [cet article] (http://blogs.msdn.com/b/oldnewthing/archive/2011/05/06/10161590.aspx). – Deanna

Répondre

0

S'il tombe en panne, vous devriez être en mesure de vérifier la pile d'appels à la position d'arrêt. Il devrait faire la lumière sur le problème avec le code. L'API CreateDialogIndirectParam fonctionne bien.

Questions connexes