Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Visual C++]-Contare le istanze di un'applicazione

    Salve,il titolo dice tutto.Supponiamo di avee una certa applicazione,ogni nuova istanza di tale applicazione che viene avviata dovrebbe riuscire a contare le altre istanze di se stessa attualmente attive e ricavare di conseguenza un numero ordinale da impostare nel suo titolo.Un esempio può chiarire.Supponiamo che inizialmente non ci siano altre istanze attive,il programma dovrebbe contare zero istanze e quindi dire "io mi chiamo 1",la successiva istanza avviata (con l'altra ancora attiva) dovrebbe contare un'applicazione del suo tipo già attiva e quindi dire "io mi chiamo 2",e così via.La cosa non è banale però,infatti all'inizio avevo pensato di usare una variabile statica nella classe applicazione e incrementarla nel costruttore,così però non funziona perchè la variabile statica può contare le istanze di una stessa classe soltanto se istanziate nell'ambito della stessa sessione dell'applicazione.In altre parole se io nel mio programma ho un classe CPippo e la istanzio più volte nell'ambito della stessa sessione dell'applicazione la varibile conterà effettivamente le istanze di CPippo,se però avvio un'altra applicazione uguale le istanze di CPippo create in quella vengono conteggiate a parte in'un'altra variabile statica.Qualche idea per risolvere il mio problema?
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  2. #2
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Potresti gestire il problema tramite un file temporaneo su disco che la prima istanza che viene aperta crea e l'ultima che viene chiusa distrugge.

    Ogni volta che un istanza viene lanciata incrementa una variabile sul file, ogni volta che viene chiusa la decrementa.

    Oviamente il tutto in mutua esclusione...
    Linux user number 403381

    Stop TCPA!

  3. #3
    Potresti gestire il problema tramite un file temporaneo su disco che la prima istanza che viene aperta crea e l'ultima che viene chiusa distrugge.

    Ogni volta che un istanza viene lanciata incrementa una variabile sul file, ogni volta che viene chiusa la decrementa.

    Oviamente il tutto in mutua esclusione
    Si è esattamente la soluzione a cui sono arrivato 5 minuti fa,non mi piace tantissimo però, mi sarebbe piaciuto fare tutto in memoria principale magari con qualche variabile di sistema,ma penso farò così all fine.Grazie comunque
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

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.