Der GC in einer DLL [SOLVED]
Übersicht

![]() |
Der EisvogelBetreff: Der GC in einer DLL [SOLVED] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Ich habe derzeit das Problem, dass der GC in einer DLL anscheindend nicht richtig funktioniert. Die DLL frisst sich unaufhörlich mit Speicher zu, was auf die Dauer keinen Spaß macht. Das Programm besteht in grober From aus folgendem Code: BlitzMax: [AUSKLAPPEN] Repeat Mit folgendem Framework: BlitzMax: [AUSKLAPPEN] Framework maxgui.drivers Und einem selbst geschrieben Timer, da der Standard-Timer in der DLL nicht funktioniert: BlitzMax: [AUSKLAPPEN] Type TTimer Der Timer ist auf 10 FPS eingestellt welche auch gehalten werden können. Je mehr Code ich im "Case 0" Fall ausführe, oder je mehr Klick ich auf mein Fenster aus über (mehr Events), desto schneller frisst sich der GC voll. Liegt dies an mir, an der DLL, oder am GC? Kann ich das irgendwie beheben? Denn wenn sich der Speicher voll lädt, dann geht irgendwann nix mehr. EDIT: Habe grade folgende in der "blitz_gc.win32.s" als Kommentar gefunden: Zitat: ;Note:
; ;The bbGCEnter/bbGCLeave stuff below is for the Win32 only dll hack. ; ;Need a much nicer way to manage dlls... Bringt mir das was? SOLVED: So nachdem ich jetzt noch ein wenig mehr gesucht habe, sowohl im Internet, als auch in den tiefen von BRL.Blitz. Dort hatte ich den obigen Kommentar gefunden. Nachdem ich mir dann den Rest des Codes noch mal angeguckt habe, hab ich ein wenig mit GCEnter/GCLeave rumgespielt, und habe mein Problem gelöst. Meine DLL wurde mittels eines Injectors in ein fremdes Programm injected, von dort aus have ich einen Thread der Hauptfunktion erstellt. Am Anfang dieser Funktion rufe ich einmal GCEnter auf, das löst all meine Probleme. Meine DlLL läuft jetzt mit nur 78kb an Speicher. Ein wahres wunderwerk. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group