begin process at 2012 05 29 02:40:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Dialog dans DLL ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Dialog dans DLL ?

vendredi 10 juin 2005 à 12:19:18 | Dialog dans DLL ?

Zootella

Hello all

J'esseye d'utiliser dans mon programme une fenêtre dialog qui se trouve dans une dll, mais la fonction qui traite les message de la fenêtre doit être dans la dll et non dans l'exe, est-ce possible ? si oui comment ? merci

vendredi 10 juin 2005 à 12:33:28 | Re : Dialog dans DLL ?

BruNews

Administrateur CodeS-SourceS
DialogBoxParam(hDllIci, (LPCTSTR)IDD_APP, 0, AppDlgProc, 0);

ciao...
BruNews, MVP VC++
vendredi 10 juin 2005 à 14:49:42 | Re : Dialog dans DLL ?

Zootella

Merci, j'ai donc testé ceci :

Code de la Dll :

[code]
#include <windows.h>
#include "resource.h"

LRESULT CALLBACK AppDlgProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam);

HINSTANCE hDll;

int __stdcall Dialog()
{
   DialogBoxParam(hDll, (LPCTSTR)IDD_APP, NULL, &AppDlgProc), 0);
   return 0;
}

LRESULT CALLBACK AppDlgProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam)
{
    int Select;
    switch(message)
    {
    case WM_COMMAND:
        Select=LOWORD(wParam);
        switch(Select)
        {
        case IDOK:
            MessageBox(0, "ok", "Test", 0);
            return TRUE;
        case IDCANCEL:
            EndDialog(Dlg,Select);
            PostQuitMessage(0);
            return TRUE;
        }
    default:
        return FALSE;
    }
}
[/code]

Code de l'exe:

[code]
#include <windows.h>

typedef BOOL (*FONCTION) (void);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{

    HINSTANCE hDll = LoadLibrary("Dll.dll");
    FONCTION fDialog = (FONCTION)GetProcAddress(hDll, (LPCSTR)"Dialog");

    fDialog();

    return 0;
}
[/code]

Mais la fenêtre n'apparait pas une fois le programme éxecuté.
Aussi j'ai dû changer la ligne :

DialogBoxParam(hDll, (LPCTSTR)IDD_APP, NULL, &AppDlgProc), 0);

par :

DialogBoxParam(hDll, (LPCTSTR)IDD_APP, NULL, reinterpret_cast<DLGPROC>(&AppDlgProc), 0);

Sinon il ne compilait pas, pourquoi ?

Voilà










vendredi 10 juin 2005 à 15:08:13 | Re : Dialog dans DLL ?

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Dans ton DllMain enregistre le 1er param (hdll) dans une variable quand reason vaut DLL_PROCESS_ATTACH.
Exporte par ta dll une func GetHinstDll() par exemple. Ensuite tout le code pourra aller dans l'exe.
DialogBoxParam(GetHinstDll(), (LPCTSTR)IDD_APP, NULL, AppDlgProc, 0);

ciao...
BruNews, MVP VC++
vendredi 10 juin 2005 à 15:23:47 | Re : Dialog dans DLL ?


Cette discussion est classée dans : dll, dialog, fenêtre


Répondre à ce message

Sujets en rapport avec ce message

Probleme de Dialog VC++ [ par anaya ] Bonjour,J'espere bien que vous allez m'aider, voila mon probleme:Mon programme marche a merveille avec Domodal(); mais moi je dois utiliser autre cho How do I create a modeless dialog in a DLL? [ par dev2004 ] Originally posted by: H I have an MFC C++ dll, which is called from a C executable. I can create a modal dialog just fine, but I'm having trouble gett Afficher un dialog modal dans une dll d'extension... [ par MadPlop ] J'ai cree la DLL avec une classe de dialogue (avec la ressource de dialogue associee) et une autre classe. Les fonctions de ces classes fonctionnent s Rafraichissement des dialog [ par JeriKo ] salut a tous,j'ai fait un prog avec boite de dialogue, le probleme etant que j'ai une boucle et du coup faut rafraichir la fenetre pour pouvoir utilis Mettre une fenêtre graphique dans une dll [ par Arnaud ] Comment mettre une fenêtre graphique dans une dll (plus précisément dans la dll pour visual basic)MerciDjsteyhttp://www.codejeuxvideo.com Resize d'un dialog [ par wanny ] Hello.Est ce quelqu'un peut me dire comment faire simplement pour que quand j'agrandis une fenêtre dialog, les éléments contenus dedans (ex : edit box Password Dialog [ par ricky78 ] Bonjour,Il y a quelque temps je programmais sous visual c++ 4.0 et dès que je souhaitais inserer un mot de passe, une fenêtre de dialogue Password se SendMessage vers une fenêtre minimisée [ par Keenes ] Bonjour,Le sujet du message n'étant pas très explicite, voici de quoi il s'agit :Je cherche à réaliser une logiciel de capture d'écran, comme il en ex detection d'un messageBox et fermeture automatique [ par elroulianito ] J'aimerai utiliser une fonction issue d'une dll. Le problème est qu'à l'execution de celle-ci une fenêtre de type messagebox apparait m'invitant à cli cree boite dialog dans DLL [ par bonjour__ ] salut tous le monde.j'ai cherche comment cree les boite de dialog avec leur fonction procedure ( modale ou non )dans les fichier executable DLL .voici


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,076 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales