Dll et boite de dialogue

Résolu
juguivin Messages postés 6 Date d'inscription dimanche 8 octobre 2006 Statut Membre Dernière intervention 26 octobre 2006 - 8 oct. 2006 à 16:30
juguivin Messages postés 6 Date d'inscription dimanche 8 octobre 2006 Statut Membre Dernière intervention 26 octobre 2006 - 8 oct. 2006 à 19:41
Bonjour.
Je me lance dans la conception de dll pour Pixia , logiciel de graphisme; avec Devc

mes dll sont bien reconnues et fonctionnent sauf  la boite de dialogue .( elle doit apparaitre lorsque l' on clique sur réglages dans Pixia)
fragments de code de la dll

HINSTANCE hInst;

DLLIMPORT int CALLBACK _DllMainCRTStartup(
    HINSTANCE hInstance, DWORD fdwReason, LPVOID lpReserved )
{
   
  switch(fdwReason) {
    case DLL_PROCESS_ATTACH:
      hInst = hInstance;
            break;
    case DLL_PROCESS_DETACH:
     
      break;
  }
  
    return(1);
}

et la routine pour la boite de dialogue .
DLLIMPORT BOOL FilterOption( HWND hWnd, LPSTR szDir, BYTE *lpExt )
{
    ReadData( szDir );
      
    DialogBox( hInst,(LPCTSTR)MAKEINTRESOURCE(IDD_DIALOG1), hWnd,(DLGPROC) OptDlgProc );
    WriteData( szDir) ;
    if (!hInst){
             MessageBox(0,"HINSTANCE ", "Erreur",     
                MB_OK);
         }

    return( TRUE );
}

en désespoir de cause , j' y ai placé une MessageBox qui s'affiche , mais pas la DialogBox.
Je bloque depuis une semaine. Je pense à hInst, mais je ne trouve pas de solution
Avez vous une idée?
Merci

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 oct. 2006 à 18:06
En désespoir de cause je pourrais te faire un exemple mais sera sur VS 2005, ce qui ne devrait de toute manière rien changer aux appels API.
Si t'intéresse, dis le et je mettrai en source cppfrance.

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 oct. 2006 à 19:34
DIALOG DEPUIS DLL (WIN32)
http://www.cppfrance.com/code.aspx?ID=39858

ciao...
BruNews, MVP VC++
3
juguivin Messages postés 6 Date d'inscription dimanche 8 octobre 2006 Statut Membre Dernière intervention 26 octobre 2006
8 oct. 2006 à 18:15
Je suis preneur , j' aimerai bien comprendre
Merci
0
juguivin Messages postés 6 Date d'inscription dimanche 8 octobre 2006 Statut Membre Dernière intervention 26 octobre 2006
8 oct. 2006 à 19:37
J' ai relu et de nouveau essayé l' autre post sur un sujet identique .
Cette fois cela fonctionne .
Désolé

La solution du post précédent:

HINSTANCE thismod = 0;

BOOL WINAPI DllMain(HINSTANCE hdll, DWORD dwReason, LPVOID Reserved)
{
  switch(dwReason) {
    case DLL_PROCESS_ATTACH:
      thismod = hdll;
      break;
    case DLL_PROCESS_DETACH:
     
      break;
  }
  return 1;
}
0

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

Posez votre question
juguivin Messages postés 6 Date d'inscription dimanche 8 octobre 2006 Statut Membre Dernière intervention 26 octobre 2006
8 oct. 2006 à 19:41
Nos messages se sont croisés.
Merci pour l' exemple .
0
Rejoignez-nous