Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698

    Ciclo di vita DLL, gestire finalizzazione

    Ho il seguente problema: ho scritto una dll, e durante l'inizializzazione apro un file di log.

    Quando lancio un applicazione che fa da client alla dll per testarla, se durante il debug apro questo logfile ci trovo dentro le informazioni che ho scritto, ma nonappena termino l'applicazione client, se vado a controllare il file lo trovo vuoto.

    Credo dipenda dal fatto che non faccio fclose sul file, ma il problema è che non so dove farla.

    Esiste una funzione di finalize chiamata dal sistema operativo (win) quando la dll va giu?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Il linguaggio?

    Dove apri il file?

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: Ciclo di vita DLL, gestire finalizzazione

    Originariamente inviato da Gil Mour
    Ho il seguente problema: ho scritto una dll, e durante l'inizializzazione apro un file di log.

    Quando lancio un applicazione che fa da client alla dll per testarla, se durante il debug apro questo logfile ci trovo dentro le informazioni che ho scritto, ma nonappena termino l'applicazione client, se vado a controllare il file lo trovo vuoto.

    Credo dipenda dal fatto che non faccio fclose sul file, ma il problema è che non so dove farla.

    Esiste una funzione di finalize chiamata dal sistema operativo (win) quando la dll va giu?
    Le DLL hanno un entry-point DllMain(), uno dei suoi parametri è 'dwReason', che può essere: DLL_PROCESS_ATTACH, DLL_PROCESS_DETACH, DLL_THREAD_ATTACH o DLL_THREAD_DETACH.

    Basta che tieni il "conto" di quanti processi si sono attaccati. Man mano che si staccano decrementi il conto. Arrivato a 0, nessun processo è attaccato (quindi la DLL verrà poi scaricata) e quindi puoi fare le finalizzazioni che ti servono.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.