Nein, so geht das glaube ich nicht!
Du musst glaube ich sowas machen:
Delphi-Quellcode:
Procedere DoIt; Assembler;
begin
mov ax, 0; // nur ein Beispiel
end;
Ich habe leider keine Ahnung von
ASM daher nutz mir eine Vermutung (Beispiel) nichts.. Sorry
Der Aufruf müßte also schon genau funktionieren.
FNCLEX müßte dann also nach Delphi übersetzt werden.
Oder die Procedure entsprechend angepaßt.
Trotzdem Danke!
Zitat:
Mit
ASM eingeleitete Blöcke dürften in x64 nicht
funktionieren.
Diese Funktion unter 64Bit macht aber keine Probleme.
Wird anstandslos akzeptiert trotz Abhängigkeit (allerdings in einer
DLL 64Bit)
Delphi-Quellcode:
function TSkinEngine.Rgb2Gray(RGBValue: COLORREF): COLORREF;
stdcall;
asm
movzx edx, al
imul edx, 19595
//Red
movzx ecx, ah
imul ecx, 38470
//Greean
shr eax, 16
imul eax, 7471
//Blue
add eax, ecx
add eax, edx
shr eax, 16
mov ah, al
shl eax, 8
mov al, ah
end;
Verstehe wer will.
Also Basis Anwendung 64Bit funktioniert.
32Bit Anwendung
ASM macht Probleme wenn ich diese als Abhängigkeit der 64Bit Anwendung zuweise.
64Bit
DLL mit obiger Funktion geht ohne Probleme.