Seite 2 von 3

Verfasst: 18.11.2006 23:28
von mar
Beim Laden einer DLL meldet sich purebasic asm mit doppelten Einträgen??? Bei 4.00 ist aber alles OK. Wenn man nun wüsste, was sich verändert hat, könnte man besser einschätzen - ob mein code falsch ist oder doch der von purebasic. Ich habe schon drei Wochen nichts machen können wegen Computerwechsel - daher möchte ich doch erst mal wieder programmieren. Vielleicht habe ich demnächst dazu Lust, den Fehler einzukreisen. Daher habe ich erst mal wieder die alte Version installiert. Kann man eigentlich eine zweite Purebasic-version vom USB-adapter starten - ich hatte mal sowas gelesen?

Verfasst: 19.11.2006 01:13
von Hellhound66
Du kannst soviele PB-Verisonen installieren, wie du lustig bist. Du musst nur darauf achten, dass die Installationsverzeichnisse verschieden sind.

Verfasst: 19.11.2006 01:15
von AND51
Wieso?

Die Prozedur AllocateMemory() bräuchte einfach nur eine Static LinkedList, in der alle pointer gespeichert werden. FreeMemory(-1) ruft einfach Allocatememory(-1) auf; Allocatememory(9 prüft und wenn ihm -1 übergeben wird, dann geht's die Liste durch und gibt alle Speicherbeereiche frei.

Dies ist natürlich die primitive Funktionsweise, ihr/Fred könnt/kann das bestimmt besser.

Verfasst: 19.11.2006 02:57
von MVXA
Und schneller, warum sollte man denn bitte die Release Funktion in die Create
einbauen o_O?

Verfasst: 19.11.2006 09:28
von Deeem2031
Wenn du unbedingt das Feature 'FreeMemory(-1)' haben willst, dann bau es dir doch selber. Da du gerade ein Weg beschrieben hast, wie's funktioniert kann es ja nicht so schwer sein. (Das funktionierte im übrigen auch schon mit 3.94 nicht, nur weil es jetzt bekannt wurde, brauchst du dich nicht dafür einsetzen, dass es doch wieder eingebaut wird, du hast es ja anscheinend mit 3.94 auch nicht gebraucht)

Verfasst: 19.11.2006 10:42
von Hellhound66
In meinen Augen ein sinnloser Befehl..

Verfasst: 19.11.2006 14:05
von mar
@Hellhound66: Danke funktioniert prima.

Noch zur alten PB-Version 4.00:
Bei dem Computerwechsel habe ich noch festgestellt, dass die 3D engine bei ungünstiger Auflösung (1024x768;1280x800) unkontrollierte Fehler macht. Meine native Bildschirmauflösung ist 1440x900.
ChangeGamma (0,0,0,1) verursacht einen Absturz.

Mein Computer ist ein MacBook Pro. Vielleicht ist das zu neue Hardware? Hat schon wer Erfahrungen mit Intel Core Duo und Purebasic?

Verfasst: 20.11.2006 12:00
von ShadowTurtle
Hellhound66 hat geschrieben:In meinen Augen ein sinnloser Befehl..
Das stimmt nicht ganz. Es gibt viele Kompiler ( z.B. C++ ) welche im Debug Modus mit einen eigenen Speicher Manager arbeiten.

Gäbe es in PureBasic auch einen Speicher-Manager, dann wäre jedes AllocateMemory (vllt. gar auch noch die Lokalen/Globalen Variablen) verzeichnet. Nach dem Beenden würde wieder alles automatisch freigegeben werden.

Natürlich könnte nun auch einfach (linux kompatibel) eine Funktion wie z.B. 'FreeMemory(-1)' eingebaut werden, allerdings würde diese dann nur im Debug Modus funktionieren.

Freds verhalten ist also kein Wunder.

Verfasst: 20.11.2006 12:39
von Hellhound66
Das stimmt nicht ganz.
Doch es stimmt zu 100%. Es ist in meinen Augen ein sinnloser Befehl.

Ich sehe den Sinn nicht, oder kann mir ein Programm (auf zum debuggen) nicht vorstellen, wo ich _alle_ Speicheranfragen wieder freigebe, außer vor und da brauch ich es nicht..

Verfasst: 20.11.2006 17:27
von ShadowTurtle
Oh. Entschuldigung, Hellhound66. Ich hatte falsch Zitiert. Es ist aber dennoch so wie ich es bereits beschrieb (abgesehen von diesen missvertständniss).