Zeiger auf Funktion und entsprechender cast



  • Also...
    ich hab da 2 Fragen:

    Ich will eine Funktion die so aufgebaut ist:

    DWORD WINAPI SendARP(IPAddr,IPAddr,PULONG,PULONG)
    

    aus mit GetProcAddress aus einer DLL holen, ist dann folgender Typdefinition richtig?

    typedef DWORD (WINAPI *ARPFUNC)( IPAddr, IPAddr, PULONG, PULONG )
    

    Meine zweite Frage bezieht sich auf den Rückgabewert von GetProcAddress().
    Diese liefert einen Zeiger vom Typ FARPROC zurück.

    Funktioniert dies?( vereinfacht )

    FARPROC pProc = GetProcAddress();
           ARPFUNC pARPFunc = ( APRFUNC ) pProc;
    

    Dabei ist zu beachten das pProc eigentlich die oben gennante Funktion ist.
    Danke für alle Eintreffende Hilfe.



  • dass das casten standardkonform ist, bezweifle ich.
    aber wenn's dein compiler schluckt und es funktioniert 😉



  • Funktionscasts sind afaik (so gut wie) nie Standardkonform. Das könnte aber Probleme machen, wenn die Funktionen auf unterschiedliche Weise aufgerufen werden (da gibts ja fastcall etc). Da bin ich mir aber nicht so ganz sicher.

    Gruss,
    Lars


Anmelden zum Antworten