Seite 1 von 1

Und immer wieder QUADs ... :(

Verfasst: 06.03.2007 06:58
von PureLust
(Ich weiss nicht ob's schon mal irgendwo geposted wurde (zumindest habe ich über die Suche noch nichts über das Quad-Problem in Zusammenhang mit Prozeduren gefunden).)

Bei der Übergabe eines Quad-Wertes an eine Prozedur die einen anderen Integer-Wert erwartet machen Quads (ebenfalls) Probleme.
So funktioniert die automatische Umwandlung in Integer-Werte auch hier nicht korrekt.
Die Umwandlung in Fließkomma-Werte funktioniert hingegen einwandfrei.

Anbei mal ein kleines Beispiel:

Code: Alles auswählen

Procedure.l LongProc(Type.s, Long.l)
	Debug "Übergabewert: "+Str(Long)+"                     (Sollte 7 sein - Typ: "+Type+")"
EndProcedure

Byte.b = 7		: LongProc("Byte",Byte)
Word.w = 7		: LongProc("Word",Word)
Long.l = 7		: LongProc("Long",Long)
Quad.q = 7		: LongProc("Quad",Quad)
Float.f = 7		: LongProc("Float",Float)
Double.d = 7	: LongProc("Double",Double)

Quad = Long
Debug "" : Debug "Direkte Umwandlung von Quad nach Long ist ok. Ergebnis: "+Str(Quad)
Wobei das Ergebnis wie folgt aussieht:
Übergabewert: 7 (Sollte 7 sein - Typ: Byte)
Übergabewert: 7 (Sollte 7 sein - Typ: Word)
Übergabewert: 7 (Sollte 7 sein - Typ: Long)
Übergabewert: 2147344384 (Sollte 7 sein - Typ: Quad)
Übergabewert: 7 (Sollte 7 sein - Typ: Float)
Übergabewert: 7 (Sollte 7 sein - Typ: Double)

Direkte Umwandlung von Quad nach Long ist ok. Ergebnis: 7
@André:
Ich hätte hier einen BeispielCode, bei dem die Umwandlung seltsamerweise bei einer Prozedur klappt, bei einer anderen nicht.
Wenn Fred also zufällig daran interesse hätte um das Problem zu lokalisieren, kann ich diesen gerne zur Verfügung stellen.


Greetz, PL.

Verfasst: 06.03.2007 11:20
von #NULL
so geht's (mit 0-8-15-cast) :mrgreen:

Code: Alles auswählen

Quad.q = 7      : LongProc("Quad",Quad+0)

Verfasst: 06.03.2007 11:52
von nco2k

Verfasst: 06.03.2007 14:17
von PureLust
@NULL:
Das es über diesen WA geht ist schon klar - ist ja aber nicht wirklich im Sinne des Erfinders. ;)

@nco2k:
Super, vielen Dank für den Link. Schön zu lesen, dass der Bug bereits gefixed und in der nächsten Release draussen ist. :allright:

Thanxxx und Gruß,
PureLust.