Seite 3 von 4

Verfasst: 17.02.2005 15:39
von remi_meier
@Froggerprogger
Ich glaube

Code: Alles auswählen

Dim LocalArray.l(PeekL(*arr-8)) 
FreeMemory(@LocalArray()) 
geht nich, FreeMemory gibt 0 zurück. Arrays sind wohl anders aufgebaut als normale Speicherbereiche.
Deshalb muss man den Pointer zwischenspeichern:

Code: Alles auswählen

Dim LocalArray.l(50)
*p = LocalArray()
;Do something
LocalArray() = *p
Dim LocalArray.l(0)

greetz
remi

Verfasst: 17.02.2005 16:57
von Froggerprogger
Whoops, ja da wird von FreeMemory ja auch der Pointer auf den Start des Adressbereichs verlangt.
Z.B. klappt ja auch nicht:

Code: Alles auswählen

*mem = AllocateMemory(1024)
debug FreeMemory(*mem+4)
Korrekt funktioniert es bei Arrays mit Offset -16 (auch undokumentiert :wink: ) :

Code: Alles auswählen

FreeMemory(@LocalArray()-16)
Habs oben im Code geändert.

[edit]Allerdings ist das dimensionieren nach PeekL(*arr)-8 sinnlos, da der Array-Pointer sowieso neu gesetzt wird, und dann auch die Dimensionen des neuen Arrays übernommen werden. Habs mal geändert auf Dim LocalArray.l(0).
Für die 20 Bytes kann man sich allerdings das FreeMemory auch fast sparen ;-)
[/edit]

Verfasst: 28.02.2005 22:34
von hardfalcon
Ich glaube, ich habe was gefunden:

Code: Alles auswählen

Drives()
Gibt bei mir unter WinXP Pro alle gültigen (=momentan vorhandenen) Laufwerksbuchstaben in einem einzigen String zurück, getrennt durch Spaces.
Wenn es bei jemandem nicht funzen sollte,bitte posten. Ich habe das mit PB 3.92 getestet, und weder n der PB-Hilfe noch in den Helpfileszu den installierten Userlibs einen Hinweis auf den Befehl gefunden. Auchin der jaPBe-Hilfehabe ich nix gefunden...

//EDIT: Ich scheine mich geirrt zu haben, Drives() scheint kein PB-Befehl zu sein... (-> folgendes Posting von Glubschi)

Verfasst: 28.02.2005 22:42
von glubschi90
@HardFalcon
Das ist bestimmt 'ne UserLib, denn bei mir geht's sowohl als normaler Befehl als auch als API-Befehl "Drives_()" nich'

Verfasst: 01.03.2005 17:39
von ParkL
hi, nochmal kurz zu den konstanten ...

also sowas ist eigentlich absolut nicht nur zur codestrukturierung gedacht sondern vor allem auch zu cross-platform zwecken ...

ein #PB_Image_Border könnte auf einem Win32 Compiler einen anderen Wert enthalten als auf einem Mac Compiler

Ob das jetzt bei PB allerdings wirklich der Fall ist, weiß ich nicht.

Verfasst: 01.03.2005 18:04
von hardfalcon
@ParkL: Hmm, da hast du eigentlich recht... gut, dass noch jemand für mich mitdenkt... Dann kann ich mein Gehirn GIMPS zur Verfügung stellen, um die 43. Mersennsche Primzahl zu finden.... :lol:

cya
Pascal

Verfasst: 02.03.2005 01:33
von Kaeru Gaman
hardfalcon hat geschrieben:Dann kann ich mein Gehirn GIMPS zur Verfügung stellen, um die 43. Mersennsche Primzahl zu finden....

Verfasst: 02.03.2005 03:24
von Deeem2031
Was will der Autor uns damit sagen? :?

Verfasst: 02.03.2005 03:39
von Kaeru Gaman
"Yes", said the obligative famous passing maniac.

eben dieses...

Verfasst: 02.03.2005 11:43
von hardfalcon
Deeem2031 hat geschrieben:Was will der Autor uns damit sagen? :?
Meinst du mich oder den Autor von "Per Anhalter durch die Galaxis"?