Italia
Fonte/ 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 corsa
    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 naturalmente 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 per 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 per die Variablen und und und... macht ja auch kein Mensch. ^^ (wozu auch)

Gibt nur sehr sehr sehr wenige Funktionen bei denen in der Windows-Aiuto 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 DLL 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-Aiuto 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


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

8.923 Views

Untitledvor 0 min.
Gast.081503.10.2024
Georg Teles29.08.2024
RudiB.02.09.2022
p.specht18.11.2021
Di più...

Themeninformationen

Dieses Thema hat 2 subscriber:

Georg Teles (3x)
iF (2x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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