ASM4AutoIt: Auf ASM-Funktionen via DLL zugreifen (Vorteile im Speed, etc)

  • N'Abend zusammen Community,

    Ich hab seit heute morgen ca. angefangen mich aktiv mit Assembler (InLine in C/C++) zu beschäftigen.
    Und da Ich weiß dass man in Assembler einiges an Speed-Vorteilen rausholen kann im Gegensatz zu AutoIt,
    kam mir folgende Idee: ASM4AutoIt. Das heißt eine DLL für AutoIt erstellen, die InLine-ASM Code beinhaltet
    und von AutoIt via DllCall aufgerufen wird.

    Da Ich auch gerade erst am C++ Lernen bin (Komme aus der PHP-Ecke) sieht der Code evtl. auch danach aus :)

    Genug des trockenen Textes, Lets show the Code:

    Aufruf der ASM4AutoIt UDF
    [autoit]


    #include ".\ASM4AutoIt.au3"

    [/autoit] [autoit][/autoit] [autoit]

    $iZahl1 = 17
    $iZahl2 = 36

    [/autoit] [autoit][/autoit] [autoit]

    $iErgebnis = _ASM_CalcPlus($iZahl1, $iZahl2)

    [/autoit]
    ASM4AutoIt UDF Funktionen
    [autoit]


    _ASM_CalcPlus(Zahl1, Zahl2) ;Rechnet die angegebenen Zahlen +
    _ASM_CalcMinus(Zahl1, Zahl2) ;Rechnet die angegebenen Zahlen -

    [/autoit]

    Okay, das war der kleine AutoIt-Part, nun zum C/C++ Part:

    ASM4AutoIt C++ Header (Plugin.h)
    Code
    #define DECLDIR __declspec(dllexport)
     
    extern "C" {
        DECLDIR int ASM4AutoIt_CalcPlus(int, int); 
        DECLDIR int ASM4AutoIt_CalcMinus(int, int);
    }

    Dann hätten wir noch den Code von der Main-File selber:

    ASM4AutoIt C++ Main-File (Plugin.cpp)

    Ich werde noch bei ausreichend Zeit das Visual Studio 2010 Projekt anhängen.

    Soviel von meiner Seite,
    Alle Dateien im Anhang.

    Viel Spaß damit
    Blume :)

    PS: Wer Ideen für neue Funktionen hat, immer her damit (Wie gesagt fange gerade erst damit an)
    PPS: Falls etwas nicht funktioniert, bitte bescheidsagen. Musste eben was blind ändern