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

    [C++] variabile esterne

    Salve,

    volevo sapere se sto usando l'approccio giusto per condividere variabili globali tra moduli. Nel file main.cpp ho:
    codice:
    #include "modulo.h"
    
    HINSTANCE glbhInst = NULL; // Globale dovrà essere visibile da tutti i moduli
    in modulo.h ho:
    codice:
    extern HINSTANCE glbhInst;
    extern HWND hDialog;
    quindi dovrebbe poter usare il valore "glbhInst" che verrà impostato in main.cpp

    Inoltre come avete visto nel file modulo.h ho una variabile "HWND hDialog" che nel file modulo.cpp viene inizializzata così:
    codice:
    #include "modulo.h"
    HWND hDialog = NULL;
    e voglio che sia visibile anche in main.cpp dove verrà usata (letta/scritta).

    va bene il mi approccio così? Forse per evitare confusione usero uno spazio nomi dato che potrei avere molti moduli con variabili extern.

    grazie
    Alla batteria dai retta ballA

  2. #2
    L'approccio è corretto; tieni comunque conto che è buona norma minimizzare l'uso di variabili globali.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    ma infatti credo che ne avrò solo una, quella dell'istanza dell'applicazione. L'altra era un handle della CreateDialog() che volevo condividere, ma l'handle lo posso sempre ritornare dal suo resource id.
    Alla batteria dai retta ballA

  4. #4
    Originariamente inviato da gianvituzzi
    ma infatti credo che ne avrò solo una, quella dell'istanza dell'applicazione. L'altra era un handle della CreateDialog() che volevo condividere, ma l'handle lo posso sempre ritornare dal suo resource id.
    Meglio sarebbe incapsulare con delle funzioni. Vedi:
    http://forum.html.it/forum/showthrea...8#post12868138

  5. #5
    ok, quindi dovrei dichiarare la variabile con static in cima al modulo e poi incapsulo con i metodi get e set?
    Alla batteria dai retta ballA

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 © 2026 vBulletin Solutions, Inc. All rights reserved.