interface aus DLL extrahieren



  • hab hier ne DLL mit ewig vielen methoden, die ich nachbauen möchte. hab jetzt irgendwie keine lust, den ganzen krempel von hand zu schreiben 😃 gibs tools, die nen interface aus einer DLL extrahieren können?



  • Wenn es sich um ein C-Interface handelt: nein, da keinerlei Informationen über die Funktionssignaturen in der DLL vorhanden sind.
    Wenn die DLL C++-Klassen und -Funktionen exportiert oder ein COM-Interface hat, dürfte das eingeschränkt möglich sein (Datenstrukturen müßten bekannt sein), jedoch ist mir kein spezielles Tool für diesen Zweck bekannt.



  • sind reine c++ methoden und strukturen. an die signaturen kommt man problemlos dran. hm, vielleicht schreib ich mir dann selbst son tool.



  • Beim Borland C++ Builder gibt es das Tool 'ImpDef', welches aus einer DLL eine DEF-Datei erzeugt. Die DEF-Datei enthält dann sowohl die 'mangled' als auch 'unmangled'-Namen der Funktionen inklusive Parameter.
    Die Namen von Template-Klassen sind dann unaufgelöst, z.B.

    cgicc::Cgicc::getElement(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)
    
    statt
    
    cgicc::Cgicc::getElement(const std::string&)
    

    Klar, daß er die typedefs 'string', 'wstring' etc. nicht kennt, aber mit Find & Replace hat man dann wieder die gewohnte Form.

    Leider scheint der Rückgabewert nicht enthalten zu sein...


Anmelden zum Antworten