Aufrufkonventionen C++ DLL



  • Hi,
    zur Kenntnisnahme oder so.

    Für die Funktion

    __declspec(dllexport) int HalloWelt(int);
    

    wird in einer mit BDS 2006 geschriebenen Dll laut Borlands impdef.exe der Name

    @HalloWelt$qqsi
    

    generiert. Bei Variation der Aufrufkonventionen und Registerverwendung des
    Compilers ändert sich der Name hinter dem $.

    Im Gegensatz dazu enthalten die üblichen MS-DLLs Namen wie:

    HalloWelt
    

    ggf mit vorangestelltem @ bei Fastcall

    Das ist soweit kein großes Problem, nur etwas unschön beim Import in Delphi, das
    zum finden den ganzen Namen braucht:

    function HalloWelt(value : Integer) : Integer;
        stdcall; external DLLNAME name '@HalloWelt$qqsi';
    

    Gruss,
    Pdug



  • Oder man ist schlau genug einmal die Suchfunktion einzuschalten und auf Grund der nun gewonnen Kenntnisse die Funktion einfach als
    extern "C"
    zu deklarieren und sich dann nur noch um einen vorangestellten _ Sorgen zu machen ...



  • Wer suchen kann ist klar im Vorteil

    Herzlichen Dank!


Log in to reply