tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
221
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Nukleo Nukleo ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Beiträge
    60
    Ich habe das Ziel Dialoge als Plugins zu verwenden und später über LoadLibary() nachzunutzen. Dazu machte ich bislang folgendes:

    ... und dann rauchts.

    in der Dialog-Klasse steht ja

    Code cpp:
    1
    2
    
    // Dialogfelddaten
        enum { IDD = IDD_DIALOG1 };

    diese IDD ist in der resource.h definiert. Wenn ich resource.h einbinde wird das Projekt erfolgreich kompiliert.

    Anschließend erstelle ich mir eine mfc-dialog-app und will diesen Dialog wie folgt sichtbar machen:

    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    typedef UINT ( * LPDLLFUNC)(CRuntimeClass**);
        LPDLLFUNC lpfnDllFunc = NULL;
        HINSTANCE hDLL = NULL;        
        CDialog *dlg;
        hDLL = LoadLibrary("FX1.dll");
        
        if(hDLL)
        {
            lpfnDllFunc = (LPDLLFUNC)::GetProcAddress(hDLL,"Init");
            if (!lpfnDllFunc)
            {
                AfxMessageBox("Function not found in DLL");
                FreeLibrary(hDLL);
                return;
            }
            CRuntimeClass* pNewViewClass;
            lpfnDllFunc(&pNewViewClass);
            ASSERT(pNewViewClass);
     
             dlg = (CDialog*)pNewViewClass;
             dlg->DoModal();
            
        }
        else
        {
            AfxMessageBox("Dll not found!");
        }

    in der Zeile dlg->DoModal(); ist nun endgültig feierabend mit der Fehlermeldung:
    Code c:
    1
    
    Zugriffsverletzung bei lesen an Position sowieso
    . in der Zeile darüber sehe ich beim Debuggen, dass pNewViewClass->m_lpszClassName meiner selbstgeschriebenen Klasse entspricht. Ich vermute, dass es irgendwas mit den Ressourcen zu tun hat aber sicher bin ich mir auch nicht.

    Hier gibts ein Beispielprojekt mit dem Problem:



    Brauche Dringend Eure Hilfe.
    Danke, Emu
     

  2. #2
    Nukleo Nukleo ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Beiträge
    60
    Eieiei,... manchmal könnt man vom Glauben abkommen aber dann kommt doch wieder etwas Tunnel am Ende des Lichts

    Obige Vorgehensweise funktioniert. Beim Anlegen beider Projekte ist auf gleiche Zeichensatz-kodierung Unicode/Multibyte zu achten. Ich habs jetzt mit Unicode und es läuft.

    Nun können die Plugins kommen.

    CU
     

Ähnliche Themen

  1. MFC CDialog und seine Childs
    Von russkij im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 03.12.09, 16:10
  2. Textfeld von CDialog ändern
    Von chuqa im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 26.06.07, 10:17
  3. MFC Erweiterungs DLL - Probleme mit Resourcen
    Von sTEk im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 17.10.06, 00:16
  4. CDialog als Child Window
    Von anmae im Forum VisualStudio & MFC
    Antworten: 8
    Letzter Beitrag: 24.10.05, 10:05
  5. CDialog und Menu
    Von NinjaOne im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 04.08.05, 15:31