Callback aus dll



  • Hallo,

    ich habe noch eine Frage:

    Da ich mich gerade mit einer Einführung in die dll-Programmierung beschäftige, würde ich mich freuen, wenn mir jemand behilflich sein könnte:

    Ich habe eine MFC-Anwendung geschrieben, die von einer dll aus Veränderungen übergeben bekommt (in eine Progressbar).

    Jedoch habe ich leider keine Beispiele, wie ich dies in der dll programmieren soll oder muss.

    Über eine kleine Hilfe würde ich mich freuen.

    Gruß Wathlon



  • Beschreibe mal genauer was du machen willst oder wo das Problem ist.



  • Gut, ich versuche das Problem zu beschreiben, bzw das, was ich machen will.

    Ich will eine dll aufrufen, die einen Vorgang abarbeitet, und den Status des Vorganges an die Hauptanwendung übermittelt. Am Besten sollten die Ergebnisse oder Fehler dort gleich in einer EditBox angezeigt werden und der Verlauf in einer ProgressBar dargestellt werden.

    Leider kenne ich mich in der dll-Programmierung nicht gut aus.

    In einer normalen Anwendung ohne dll könnte ich es machen, aber mit dll???

    Ich weiß, dass ich dafür eine Callback Funktion benötige.

    Die Oberfläche, die angezeigt wird, kommt von einem Delphi-Programm.

    Gruß Wathlon



  • Hallo,

    ich habe ein bisserl was gefunden und zusammengestöpselt.

    typedef void (WINAPI *CallbackPtr_t)(void);
    
    extern "C" __declspec(dllexport) VOID WINAPI 
        DoSomethingWithCallback(CallbackPtr_t CallbackPtr)
    {
        CallbackPtr();
    }
    

    Jedoch wird nach der Durchführung des Callbacks immer ein Fehler verursacht:

    Zugriffsverletzung

    Kann mir vielleicht jemand helfen?

    Gruß Wathlon



  • Ich würde in der DLL GetStatus()und GetFehler() einbauen.
    Diese Funktionen werden dann in regelmäßigen Abständen (OnTimer) vom Dialog abgefragt und dargestellt.

    [ Dieser Beitrag wurde am 15.01.2003 um 22:27 Uhr von toosten editiert. ]



  • Wofür brauchst du eine CALLBACK.

    Rufe einen Thread auf. In dieser lädst du die DLL und fürst deine Aufgabe aus.
    Wenn sie fertig ist, sende eine Message an deinen Dialog.



  • Hallo und Danke für die Antworten!

    Da meine DLL aús einem Delphi-Programm aufgerufen wird oder werden soll, ist das alles nicht so einfach.

    Frage:

    Was spricht gegen einen Callback?

    Es kommt mir so vor, als ob ein Callback etwas ganz schlimmes wäre?

    An die Funktionen GetStatus() und GetFehler() habe ich auch schon gedacht.

    Gruß Wathlon


Anmelden zum Antworten