Dialog aus dyn.DLL laden



  • Hallo,

    ich komme mit einem Dialog, den ich aus einer dynamisch geladenen
    DLL anzeigen will, leider nicht klar.

    Ich habe in der DLL einen Dialog IDD_DIALOG1 eingefügt.
    Der Dialog hat die Klasse CDialog / rundiag von mir bekommen.
    Ich habe im EXE-Projekt rundiag.h includiert.

    In einer der Funktionen meiner DLL soll mit:

    rundiag starten
    starten.DoModal();
    

    Der Dialog der DLL angezeigt werden.

    Ich erhalte aber leider folgenden Fehler in der DLL:

    rundiag.h(15): error C2065: 'IDD_DIALOG1': nichtdeklarierter Bezeichner

    Und das gleich zweimal 😮

    Sorry. Mit DLLs hab ich es wirklich nicht so.



  • Soweit ich weiß ( nicht 100 pro sicher ) kann man nicht einfach so ressourcen aus einer dll nutzen...jedoch akut für dein Problem probier bitte mal den dialog nicht mit IDC_DIALOG1 zu benennen sonder pack vorne und hinten nochmal Anführungszeichen dazu also: "IDC_DIALOG1" und in deinem MainHaupprogramm-/projekt ebenso.

    Mfg



  • Hi,

    das mit den Anführungszeichen hat leider keine Wirkung-> Konstanter Ausdruck erwartet oder so ähnlich...

    Irgendwo im Forum hat auch jemand das Problem gehabt. In dem Beitrag wurde was
    von Resource.h includen geschrieben. Aber irgendwie verstehe ich das falsch,
    oder es ist schlichtweg falsch was ich da mache 😕





  • Danke guenni81,

    ich habe mir das Projekt von Uwe angesehen.
    Ich konnte aber leider keinen gravierenden Unterschied
    im Code entdecken, der mir sagen würde warum ich diesen
    Fehler immer erhalte.

    Ich poste mal den Inhalt meiner rundiag.h evtl hat noch
    jemand eine Idee.

    #pragma once
    // rundiag-Dialogfeld
    class rundiag : public CDialog
    {
    	DECLARE_DYNAMIC(rundiag)
    
    public:
    	rundiag(CWnd* pParent = NULL);   // Standardkonstruktor
    	virtual ~rundiag();
    
    	enum { IDD = IDD_DIALOG1 };  // hier der Fehler nicht deklarierter Bezeichner
    // nehm ich in der rundiag.cpp das #include Resource.h raus kommt der Fehler 2 mal
    protected:
    	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV-Unterstützung
    
    	DECLARE_MESSAGE_MAP()
    public:
    	afx_msg void OnBnClickedButton1();
    	//int iErg;
    };
    


  • http://www.sensorme.de/dateien/dialogdll.zip

    War ein schnells Demoprojekt von mit.



  • Hallo Unix-Tom,

    dein Projekt war das aller erste das ich mir angesehen habe.
    Noch ehe ich hier den Beitrag geschrieben hab.

    Ich kann ums Verrecken nicht rausbekommen was ich da falsch mache.
    Ich werde später am Abend ein ganz neues Projekt anlegen und
    alles nochmals probieren.


Anmelden zum Antworten