Callback aus DLL



  • Hi,

    kann ich zu 100% sichergehen, dass folgendes Konstrukt funktioniert, solange das Hauptprogramm läuft?

    Hauptprogramm (VB 6):

    Function foo(ByVal bar as Long) as Long
        foo = 42
    End Function
    
    callSomeFunction(AddressOf foo)
    

    DLL (C)

    typedef int32(*Foo)(int32);
    void callSomeFunction(Foo foo)
    {
        foo(23);
    }
    

    Oder kann da noch irgendwas passieren in der Hinsicht, dass der Funktionszeiger ungültig werden könnte?

    MfG,

    Michael E.



  • ^^wenn die dll geladen ist, sollte es immer gehen. musst aber mit der 'calling convention' aufpassen, als entweder 'cdecl' oder 'stdcall' vor der c-funktion. und beim bauen der DLL muss die funktion exportiert werden (__declspec(dllexport)), aber das weisste bestimmt alles schon.
    🙂


Log in to reply