Und immer wieder QUADs ... :(

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Und immer wieder QUADs ... :(

Beitrag 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.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

so geht's (mit 0-8-15-cast) :mrgreen:

Code: Alles auswählen

Quad.q = 7      : LongProc("Quad",Quad+0)
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Beitrag 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.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Gesperrt