IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Affichage d'une fenêtre MFC à partir d'une DLL


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 38
    Points
    38
    Par défaut Affichage d'une fenêtre MFC à partir d'une DLL
    Bnjour,

    Je viens de créer une DLL MFC de type "Use MFC in a shared DLL".
    J'essaie d'appeler une boite de Dialog à partir d'une application principale (qui peut être un appli MFC ou non).

    Dans le cas où j'essaie de créer directement ma boîte de Dialog de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CConfigurationDlg configuration;
    configuration.Create(IDD_CONFIG_DLG);
    if(configuration.DoModal() == IDOK) {
    }
    else {
    }
    L'erreur suivante apparait à l'exécution lors du "Create" :
    AfxCurrentRessourceHandle vaut Null
    J'ai lu par la suite qu'il faut créer une DLL Main, j'ai donc ajouté ce code à mon appli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    static AFX_EXTENSION_MODULE g_extensionDLL;
     
    extern "C" 
    BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID ppvReserved){
    	int* a = NULL;
     
    	*a = 100;
    	printf("Debut\n");
    	switch(fdwReason) {
    	case DLL_PROCESS_ATTACH:
    		// Extension DLL one-time initialization
    		if (!AfxInitExtensionModule(g_extensionDLL, hinstDLL)) {
    			printf("Init Error\n");
    			return FALSE;
    		}
    		break;
    	default:
    		break;
    	}
     
    	printf("Init NO Error\n");
    	return TRUE;
    }
    Mais la, lors de la compilation, j'ai l'erreur suivante qui apparait :
    Linking...
    mfcs42d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in IDSSimuDll.obj
    J'ai essayé de suivre les instructions de cette page : http://msdn.microsoft.com/en-us/libr...8VS.71%29.aspx

    Merci pour votre aide !

  2. #2
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Bonjour,

    Pour que ta boite de dialogue soit utilisé dans une application MFC ou pas
    Tu dois générer une dll régulière MFC (càd sans DllMain() mais avec son CWinApp) en mode dlls partagées
    ensuite tu as un code comme celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    extern "C" void WINAPI AfxShowDialog()
    {
     
    	AFX_MANAGE_STATE(AfxGetStaticModuleState());
     
                 CConfigurationDlg configuration;
                 if(configuration.DoModal() == IDOK) 
                 {
     
                 }
                 else 
                 {
                 }
    }

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/05/2012, 14h35
  2. Affichage d'une fenêtre WPF à partir d'une app console
    Par pcayrol dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 29/03/2008, 15h56
  3. Actualiser une fenêtre parent à partir d'une popup
    Par scorian dans le forum WebDev
    Réponses: 1
    Dernier message: 22/08/2007, 09h50
  4. Controler une fenêtre a partir d'une autre fenêtre
    Par Invité dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 24/08/2006, 21h21
  5. Afficher une Fenêtre MDI à partir d'une DLL
    Par FredericB dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/12/2005, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo