Plugin Problem



  • Hi,

    Ich versuche mich auch gerade mal an Plugins. Einfach Plugins habe ich schon hinbekommen, aber das anzeigen eines Dialoges aus einer DLL haut bei mir einfach nicht hin. Die DLL Funktion sieht folgendermasen aus:

    extern "C" PIMP3_API int MainFunc(void* pParent)
    {
        CPluginDlg fenster;
        fenster.DoModal();
        return 42;
    }
    

    Die Routine zum laden des Plugins hat diese Form:

    void CCHKCTExplorerView::OnExtrasFfneplugin() 
    {
        // TODO: Code für Befehlsbehandlungsroutine hier einfügen
        typedef int (*LPMAINFUNC)(void*);
        LPMAINFUNC pMainFunc = NULL;
    
        CString csDLLName = "D:\\Visual C Projekte\\CHKCT Explorer Plugins\\PI MP3\\Debug\\PI MP3.dll";
        HMODULE dll = LoadLibrary(csDLLName);
        if (dll==NULL)
        {
            MessageBox("Konnte das Plugin nicht laden!", "Fehler", MB_ICONERROR);
            return;
        }
    
        pMainFunc = (LPMAINFUNC)GetProcAddress(dll, "MainFunc");
        if (pMainFunc==NULL)
        {
            MessageBox("Die Funktione MainFunc konnte in der DLL nicht gefunden werden!",
                "Fehler", MB_ICONERROR);
            return;
        }
    
        pMainFunc((void*)this);
    }
    

    So wie bei vielen anderen habe ich jetzt auch das Problem das der Dialog nicht angezeigt wird. Ich habs mal mit CFileDialog getestet und da hats wunderbar geklappt. Was ich beim debuggen so mitbekommen habe, ist das er anscheinend das Dialogtemplate nicht findet da er nicht in der DLL danach sucht sondern im Hauptprogramm. Dort ist dieser Dialog natürlich vollkommen unbekannt. Weiß jemand wie man das in den Griff bekommen könnte?

    Vielen Dank im voraus
    George

    [ Dieser Beitrag wurde am 15.06.2003 um 16:39 Uhr von GeorgeHomes editiert. ]



  • Schon mal die Suchfunktion benutzt ?

    In disem Projekt kannst du sehen wie es gemacht wird.

    [ Dieser Beitrag wurde am 16.06.2003 um 06:33 Uhr von Unix-Tom editiert. ]



  • Doch ich hab die Suchfunktion schon benutzt. Bin auch auf den Nachfolgendes Beispeil gestoßen aber der bringt mir leider nen Feuchten weil der die DLL's nicht als Plugins sondern als "Auslagerung" für Dialoge verwendet. Er arbeitet ja mit der Lib Datei der DLL. Das ist bei Plugins aber in der Form nicht zu realisieren da ich ja keine Ahnung habe wie das Plugin aussieht.


Anmelden zum Antworten