Seite 2 von 2

Verfasst: 06.09.2007 17:21
von NicTheQuick
Bei 'Procedure Test(b.b, w.w, l.l, q.q)' werden insgesamt nicht 15 Bytes
übergeben, sondern 20 Bytes (4 + 4 + 4 + 2*4). Für jeden Parameter also
32 Bit, außer bei dem Quad, das ja 64 Bit beansprucht.

Deswegen glaube ich, dass bei einem 64-Bit-PureBasic dann insgesamt 32
Bytes übergeben werden (8 + 8 + 8 + 8). Ein Pointer würde ab dann auch 8
Bytes belegen.
Außerdem würden ab dieser Zeit so einige Codes nicht mehr funktionieren,
weil viele Leute z.B. 'Buffer.l = AllocateMemory(Size)' schreiben und nicht
etwa '*Buffer = ...'. Der zurückgegebene Zeiger von 'AllocateMemory()'
würde dann auf 32 Bit getrimmt und somit falsch sein.

///Edit:
siehe HeX0Rs Post. <)

Verfasst: 06.09.2007 17:23
von a14xerus
gut das ich immer *mem benutze :)

Verfasst: 06.09.2007 17:51
von HeX0R
NicTheQuick hat geschrieben:Bei 'Procedure Test(b.b, w.w, l.l, q.l)' werden insgesamt nicht 15 Bytes
übergeben, sondern 20 Bytes (4 + 4 + 4 + 2*4). Für jeden Parameter also
32 Bit, außer bei dem Quad, das ja 64 Bit beansprucht.
Nur weil deine Variable sich als Quad tarnt ist sie noch lange keins :lol: .
Also nur 16 Bytes.

Verfasst: 06.09.2007 17:57
von NicTheQuick
@HeX0R:
:lol:
Hab's gleich korrigiert!

Verfasst: 06.09.2007 18:07
von mk-soft
HeX0R hat geschrieben:
NicTheQuick hat geschrieben:Bei 'Procedure Test(b.b, w.w, l.l, q.l)' werden insgesamt nicht 15 Bytes
übergeben, sondern 20 Bytes (4 + 4 + 4 + 2*4). Für jeden Parameter also
32 Bit, außer bei dem Quad, das ja 64 Bit beansprucht.
Nur weil deine Variable sich als Quad tarnt ist sie noch lange keins :lol: .
Also nur 16 Bytes.
NicTheQuick hat recht. Quad wird ByVal übergeben. Siehe ASM - Output.

FF :mrgreen:

Verfasst: 06.09.2007 18:24
von NicTheQuick
@mk-soft:
HeX0R hat nichts anderes gemeint. Ich hab lediglich einen Typo gehabt. Ich
hab 'q.l' statt 'q.q' geschrieben.

Verfasst: 06.09.2007 21:06
von HeX0R
mk-soft hat geschrieben:
NicTheQuick hat recht. Quad wird ByVal übergeben. Siehe ASM - Output.

FF :mrgreen:
Wer zuletzt lacht :mrgreen: :mrgreen:
Hatte es ja auch absichtlich nicht fett dargestellt