Deutsch
Quelltexte/ Codesnippets

Aufräumen nach Programmende

 

Georg
Teles
Sehr viel Wert lege ich auf ordentliche Speicherleerung, hier ein kleines Beispiel dazu
DEF SetWindowLong(3)!"USER32","SetWindowLongA"
'DEF initDLL(<Anzahl Parameter>)!"eineDLL.dll","initDLL"
'DEF DEinitDLL(<Anzahl Parameter>)!"eineDLL.dll","DEinitDLL"
Declare ende%, dll&, icon&
winmain()
activities()
aufraeumen()

Proc winmain

    'dll& = UseDLL("eineDLL.dll")
    'If dll&
    ' initDLL(<Parameter>)
    'EndIf
    icon& = Create("hIcon","MAIN")
    Windowtitle "Titel"
    Windowstyle 8+16+512'8 = Mit Icon im Fenstertitel
    '512 = Dialogverhalten > nach Beendigung der Schleife wird der Code weiter ausgeführt
    Window 0,0-800,600
    SendMessage(%HWnd,$80,1,icon&)'Icon auf Fenstertitel setzen
    SetWindowLong(%HWnd,-16,$92CA0000)'minimieren & X - Button, maiximieren deaktiviert - Vergrößern inaktiv
    'SetWindowLong(%HWnd,-16,$92CE0000) 'minimieren & X - Button, maiximieren deaktiviert - Vergrößern aktiv
    'SetWindowLong(%HWnd,-16,$92CB0000) 'minimieren, maiximieren & X - Button, - Vergrößern inaktiv
    'SetWindowLong(%HWnd,-16,$92CD0000) 'minimieren, maiximieren & X - Button, - Vergrößern aktiv
    DrawIcon icon&,10,10

Endproc

Proc activities

    Clear ende%

    WhileNot ende%

        Waitinput

        If (%Key = 2) | (%Key = 27)' X bzw. ALT + F4 oder ESC

            'ShowWindow(%HWnd,0) 'um "Flackern" von Fensterobjekten zu verhindern
            Inc ende%

        EndIf

    Endwhile

EndProc

Proc aufraeumen

    DeleteObject icon&

    If dll&'DLL aufräumen, eventuell DLL interne "free"-Funktion vorher aufrufen

        'DEinitDLL(<Parameter>)
        'FreeDLL dll&

    EndIf

    print "aufgeräumt ..."
    WaitInput

EndProc

END

Servus
 
XProfan X3
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

13.02.2016  
 



Und dann kam alles anders.

Hart gesprochen - da bei solchen wie obigen Dingen das OS/ Windows selbst bei Prozessende schneller und effizienter bereinigt, als wenn man es selbst per XProfan tätentut, ist es leider Zeit und Stromverschwendung.

Kann man auch ewig streiten, ob solches "Aufräumen" damit guter oder schlechter Stil ist - auch wenn das Bedürfnis natürlich nachvollziehbar ist.

Als Frage formuliert, was einfacher ist fürs OS: 1.000 deleteObjects oder 1x "alle Objekte in Müll", wobei "alle Objekte in Müll" das OS nur selbst anweisen kann.

Ist aber nur Generve auf hohem Niveau und bei Windows kleiner NT, würde ich für meine obigen Aussagen die Hand auch nicht ins Feuer legen.

Auf der anderen Seite müsste man danach aber auch konsequent das hWnd noch zerstören und die Speicher für die Variablen und und und... macht ja auch kein Mensch. ^^ (wozu auch)

Gibt nur sehr sehr sehr wenige Funktionen bei denen in der Windows-Hilfe aufgeführt ist, dass sie Ressourcen erzeugen die den Prozess überstehen.
 
14.02.2016  
 




Georg
Teles
Moin,

ja leider Verschwendung von Zeit & Strom, habe es mir so angewöhnt aus diesem Grund:

iF (14.02.2016)
Als Frage formuliert, was einfacher ist fürs OS: 1.000 deleteObjects oder 1x "alle Objekte in Müll", wobei "alle Objekte in Müll" das OS nur selbst anweisen kann.


ich habe keine Ahnung wann das passiert, wieso und wie das passiert gemeint habe ich aber nicht nur die DLLs sondern die Vars die auch mit DeleteObject gelöscht werden sollten, oder ist es jetzt doch egal ?

iF (14.02.2016)
Gibt nur sehr sehr sehr wenige Funktionen bei denen in der Windows-Hilfe aufgeführt ist, dass sie Ressourcen erzeugen die den Prozess überstehen.


moment mal, habe ich was nicht mitbekommen, heisst das jetzt, XProfan räumt nun beim Prozessende selber auf bzw. Windows macht das beim Programmende ?
 
XProfan X3
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

14.02.2016  
 



Klar, kannst Du ruhig mutig sein.

XProfans End (exitProcss) schließt Dir ja auch alle Fenster etc. -

sieht man auch selten ein DestroyWindow(hWnd) am XProfan-Programm-Ende.

Bisl was wird XProfan von sich aus entfernen -

aber sicherlich keine Fenster etc. oder Speicher die man sich holte.

Das macht Windows alles Platt weils ja keinen Prozess mehr dazu gibt und es ist dabei schneller als wenn man dies händisch tät.
 
15.02.2016  
 




Georg
Teles
Hmm, ja %HWnd am Prozessende zu zerstören macht wenig Sinn. Was XProfan entfernt und was nicht, kann nur Roland beantworten ich bleibe erst einmal bei meiner Pingeligkeit aber ich behalte das im Auge
 
XProfan X3
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

15.02.2016  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.896 Betrachtungen

Unbenanntvor 0 min.
Gast.081503.10.2024
Georg Teles29.08.2024
RudiB.02.09.2022
p.specht18.11.2021
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

Georg Teles (3x)
iF (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie