SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: spyfly en Domingo 25 de Junio de 2006, 16:22

Título: Variables Globales
Publicado por: spyfly en Domingo 25 de Junio de 2006, 16:22
Estamos haciendo una aplicacion MFC basada en dialogos y necesitamos utilizar unas variables globales q se puedan variar en cada unos de los dialogos. Hemos intentado declararlas en un archivo variables.h y luego añadirlo en los dialogos donde se utilizaran pero nos dice q están redefinidos en el .obj y si no incluimos el archivo variables .h dice que las variables q utilizamos no están declaradas.
También las hemos escrito en la parte de arriba del dialogo principal y aparecen como globales pero no las deja untilizar en los dialogos secundarios.

¿Alguien sabe como se debe hacer? ¿o alguna referencia para hacerlo?

Gracias.Un saludo.
Título: Re: Variables Globales
Publicado por: Geo en Domingo 25 de Junio de 2006, 16:46
No he usado MFC pero en C lo que se hace es algo como esto:

globales.h
Código: Text
  1.  
  2. extern int variable_global;
  3.  
  4.  

cualquier_archivo.c
Código: Text
  1.  
  2. #include "globales.h"
  3. int variable_global;
  4.  
  5. void modifica_variable_global() {
  6.   variable_global = nuevo_valor;
  7. }
  8.  
  9.  

También se puede tener un archivo de inicialización:

inicializa_globales.c
Código: Text
  1.  
  2. #include "globales.h"
  3. int variable_global;
  4.  
  5. variable_global = VALOR_INICIAL;
  6.  
  7.  

Buscando en Google encontré este enlace, no lo leí pero quizá te sirva:
http://www.zator.com/Cpp/E4_1_8d.htm (http://www.zator.com/Cpp/E4_1_8d.htm)

Saludos,
JJ (Geo).
Título: Re: Variables Globales
Publicado por: ragnarok en Domingo 25 de Junio de 2006, 19:16
En los .h es buena costumbre poner la cabecera y pie:

Código: Text
  1. #ifndef ARCHIVO_H
  2. #define ARCHIVO_H
  3.  
  4. //...
  5. // aqui el codigo
  6. //...
  7.  
  8. #endif
  9.  
  10.  
Título: Re: Variables Globales
Publicado por: spyfly en Miércoles 19 de Julio de 2006, 17:14
ok, lo hemos utilizado y nos funciona perfectamente. Gracias a todos un saludo.