Gibt es eine MAKELONGLONG-Funktion?

8

Ich muss zwei 32-Bit-Werte kombinieren, um einen 64-Bit-Wert zu erstellen. Ich suche nach etwas, das zu MAKEWORD und MAKELONG . Ich kann einfach mein eigenes Makro oder meine eigene Funktion definieren, aber wenn die API bereits eins bereitstellt, würde ich das lieber verwenden.

    
Rob Kennedy 12.08.2010, 19:57
quelle

2 Antworten

2

Ich kann keine in der Windows-API finden. Ich weiß jedoch, dass Sie hauptsächlich (oder zumindest sehr viel) mit Delphi arbeiten, daher hier eine kurze Delphi-Funktion:

%Vor%

Noch schneller:

%Vor%

Erläuterung: In der normalen Aufrufkonvention register werden die ersten beiden Argumente (falls kardinalgroß) in EAX und EDX gespeichert. Ein (kardinalgroßes) Ergebnis wird in EAX gespeichert. Nun wird ein 64-Bit-Ergebnis in EAX (weniger signifikante Bits, niedrige Adresse) und EDX (höherwertige Bits, hohe Adresse) gespeichert; Daher müssen wir A nach EAX und B nach EDX verschieben, aber sie sind bereits da!

    
Andreas Rejbrand 12.08.2010, 20:19
quelle
0

Persönlich bevorzuge ich C-Makros

%Vor%     
leiflundgren 09.01.2014 14:15
quelle

Tags und Links