Typedef und __thiscall



  • Hallo,

    ich bin grad etwas verwirrt, eventuell weil ich auch schon etwas zu lang wach bin, deswegen frag ich hier mal um Rat.

    Ich muss meine Funktion implizit mit __thiscall aufrufen, dazu hab ich mir folgendes typedef erstellt:

    struct CMyClass {
       int __thiscall tMyFunction(char * str, int len);   
    };
    
    typedef int (CMyClass::  * tMyFunction)(char *, int);
    

    Und nun das Problem, ich krieg meine Funktion irgendwie nicht zusammengebastelt:
    Ich muss meinem Programm sagen wo im Speicher sich tMyFunction befindet.

    Hier: hab ich keine Ahnung wie ich callMyFunction initialisieren muss, ich hab schon alles rum gestellt, aber es gibt immer Fehler beim kompilieren.

    //0x064332 Addressoffset von MyFunction im Speicher
    CMyClass::  * tMyFunction callMyFunction = (CMyClass::  * MyFunction)0x064332;
    

    Wäre super wenn jemand Rat weis.



  • C++ erlaubt keine Konvertierung zwischen Daten- und (Member-)Funktionszeigern.

    Aber irgendwie wirst du wohl zur Adresse 0x064332 kommen. Ist die immer gleich? Wieso hast du überhaupt eine Adresse vorliegen? Notfalls kannst du einen Workaround mit union versuchen...



  • Oder mit boost::function probieren.

    Gut Schuß
    VuuRWerK 😉


Anmelden zum Antworten