 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 26.07.2010, 22:03 Titel: 0.21.0 Beta |
|
|
Hat jemand die neue Version vom 22.7.2010 ausprobiert?
Werd mir die mal installieren.. mal schauen was sich so verändert hat
evtl. haben die endlich ein kleines problem gelöst worauf ich lange gewartet hatte  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 26.07.2010, 22:07 Titel: Re: 0.21.0 Beta |
|
|
OneCypher hat Folgendes geschrieben: | evtl. haben die endlich ein kleines problem gelöst worauf ich lange gewartet hatte  |
Wirst du im changelog sehen können. Ansonsten, was ist an dieser Version so besonders, dass dafür gleich ein neuer Thread notwenig wäre? Sowas gab's IIRC auch nicht für 0.20 und die Versionen davor.  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 26.07.2010, 22:53 Titel: |
|
|
Die letzte version kam 2008 raus, ich find das ist dann schon was besonderes  |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 27.07.2010, 16:46 Titel: |
|
|
Besonderheiten gibt es einige, z.B. mein Nick im changelog
Ansonsten gibt es einige bugfixes zu feiern, wie etwa das Problem beim Rückfallen der fbgfx auf GDI wenn DirectX nicht anspringt unter Windows.
Neues gibt es naked-Funktionen, die den Funktionsaufruf beschleunigen sollten, wenn man den ASM beherrscht und der Rest steht wie Jojo schon sagt alles im changelog.
Wer sich in letzter Zeit eine SVN-Version im FreeBASIC-Portal gezogen hat, dürfte keine Änderungen feststellen. |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 27.07.2010, 21:15 Titel: |
|
|
Ich fänd Funktoren ganz toll
Und bei der überladung des operator CAST() innerhalb einer Klasse/Type klappts nicht, wenn man den als "any ptr" deklariert...
Also das deklarieren klappt schon, aber der wird nicht benutzt, falls dann ein bestimmter datentyp-pointer erwartet wird.. (da kann ich aber ein beispiel zu liefern)
Ich hatte gehofft, dass das in der neuen version funktioniert.. aber tuts leider immer noch nicht
@MOD: Wow! Wo hast du denn genau überall mitgewirkt? |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 27.07.2010, 22:09 Titel: |
|
|
Any Ptr ist ja ein nicht definierter Pointer und das gibts eigentlich nicht. Für gewöhnlich wird versucht dann UByte Ptr aufzurufen.
Ich hab die enthaltenen examples alle mit der neuen Version lauffähig gemacht, da einige schon sehr veraltet waren. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 27.07.2010, 22:55 Titel: |
|
|
OneCypher hat Folgendes geschrieben: | @MOD: Wow! Wo hast du denn genau überall mitgewirkt? |
Zitat: | - "a MOD &hffffffffu" could be mistaken for "a MOD -1", and incorrectly optimised to 0 (counting_pine)
|
 _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
micha
Anmeldungsdatum: 09.12.2005 Beiträge: 72
|
Verfasst am: 28.07.2010, 03:02 Titel: |
|
|
MOD hat Folgendes geschrieben: | Any Ptr ist ja ein nicht definierter Pointer und das gibts eigentlich nicht. | Aber sicher doch,
der Unterschied zum nicht referenziertem NULL Pointer besteht darin
das ein Kompiler bei dem Versuch von Pointer-Mathe eine Fehlermeldung bzw. mindestens ein "Warning" ausgeben sollte.
dim as byte ptr pByte: pByte+=1 ' legal
dim as any ptr pAny: pAny+=1 ' illegal
Ob FB in der aktuellen Version dies "richtig" macht
kann ich gerade nicht Testen weil nicht zu Hause.
Micha |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 28.07.2010, 12:48 Titel: |
|
|
was hast du denn geraucht? xD dein post macht exakt 0 sinn x)
was zur hölle (sorry lutz) soll ein nicht-referenzierter null pointer? _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 28.07.2010, 19:34 Titel: |
|
|
Noch mal zu dem any ptr:
das hier funktioniert wider erwarten (nach wie vor) NICHT:
Code: |
Type TestType
public:
declare operator cast() as any ptr
declare constructor(width1 as integer, height1 as integer)
private:
image_pointer as any ptr
end type
operator TestType.Cast() as any ptr
return image_pointer
end operator
constructor TestType(width1 as integer, height1 as integer)
image_pointer = imagecreate(width1,height1,RGB(0,255,0))
line image_pointer, (0,0)-(width1, height1),RGB(255,0,0)
line image_pointer, (0,height1)-(width1, 0),RGB(255,0,0)
end constructor
screen 17,32
Dim test as TestType = TestType(200,200)
draw string test, (80,80), "Hallo Welt!", RGB(255,255,255)
put (40,40), test
sleep
|
Es sollte ja eigentlich denkbar sein, das der operator CAST in TestType den richtigen Pointer zurückgibt.
Das klappt aber immer noch nicht, also MUSS ich schreiben:
Code: |
Type TestType
public:
declare operator cast() as any ptr
declare constructor(width1 as integer, height1 as integer)
image_pointer as any ptr
end type
operator TestType.Cast() as any ptr
return image_pointer
end operator
constructor TestType(width1 as integer, height1 as integer)
image_pointer = imagecreate(width1,height1,RGB(0,255,0))
line image_pointer, (0,0)-(width1, height1),RGB(255,0,0)
line image_pointer, (0,height1)-(width1, 0),RGB(255,0,0)
end constructor
screen 17,32
Dim test as TestType = TestType(200,200)
draw string test.image_pointer, (80,80), "Hallo Welt!", RGB(255,255,255)
put (40,40), test.image_pointer
sleep
|
Ein Funktor könnte das auch realisieren.. Aber davon spricht ja leider hier keiner  |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 28.07.2010, 19:52 Titel: |
|
|
Ich glaube nicht, dass CAST hier der richtige Operator zum Überladen ist. Keine Ahnung ... hast du mal eine Überladung von LET versucht? _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
micha
Anmeldungsdatum: 09.12.2005 Beiträge: 72
|
Verfasst am: 28.07.2010, 20:33 Titel: |
|
|
Herr D
schön das Sie sich um 3:00 Uhr nachts nie in Ihrter Wortwahl irren
und Danke für Ihren Hinweis.
Nicht "klassifiziert" war gemeint
z.B.
#define NULL cptr(ANY PTR, 0)
Also das Gegenteil von z.B.
#define NULL cptr(BYTE PTR, 0)
Zürück zum Thema:
Ein "typenloser" Pointer sollte nicht bei Pointer Berechnungen
als Byte/uByte Pointer angesehen werden weil er es nun mal nicht ist.
Mit anderen Worten pInteger+=3 erhöt die Addresse um 12
aber pAny+=3 kann der Kompiler als "warning" vermerken
weil nicht definiert ist was mit 3 gemeint ist (byte,word,int, ...)
Mit freundlichen Grüßen
Micha |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|