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
#include ".\ASM4AutoIt.au3"
$iZahl1 = 17
$iZahl2 = 36
$iErgebnis = _ASM_CalcPlus($iZahl1, $iZahl2)
[/autoit]ASM4AutoIt UDF Funktionen
_ASM_CalcPlus(Zahl1, Zahl2) ;Rechnet die angegebenen Zahlen +
_ASM_CalcMinus(Zahl1, Zahl2) ;Rechnet die angegebenen Zahlen -
Okay, das war der kleine AutoIt-Part, nun zum C/C++ Part:
ASM4AutoIt C++ Header (Plugin.h)
Dann hätten wir noch den Code von der Main-File selber:
ASM4AutoIt C++ Main-File (Plugin.cpp)
#include "Plugin.h"
extern "C" {
DECLDIR int ASM4AutoIt_CalcPlus(int iInt1, int iInt2) {
int iReturn = 0;
__asm {
mov eax, iInt1
mov ebx, iInt2
add eax, ebx
mov iReturn, eax
}
return iReturn;
}
DECLDIR int ASM4AutoIt_CalcMinus(int iInt1, int iInt2) {
int iReturn = 0;
__asm {
mov eax, iInt1
mov ebx, iInt2
sub eax, ebx
mov iReturn, eax
}
return iReturn;
}
}
Alles anzeigen
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