Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Variables globales visual studio 2005

Estas en el tema de Variables globales visual studio 2005 en el foro de C/C++ en Foros del Web. Hola, estoy intentando pasar una variable de una clase a otra. He leido que en visual studio 2005 no se puede utilizar extern para crear ...
  #1 (permalink)  
Antiguo 10/06/2011, 07:24
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Variables globales visual studio 2005

Hola, estoy intentando pasar una variable de una clase a otra. He leido que en visual studio 2005 no se puede utilizar extern para crear una variable global. Alguien sabe algún modo para poder leer una variable desde una clase diferente a la que se creo?. Un saludo y muchas gracias
  #2 (permalink)  
Antiguo 10/06/2011, 09:50
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Variables globales visual studio 2005

Si la variable esta dentro de una clase para que sea global tenes que declarar la clase como statica. Sino tenes que crear una instancia de la clase como global.

Para acceder a esta variable d;entro de la clase deberias simplemente usar.
miclase.mivariable

O si la tenes como privada crear un metodo que devuelva el valor.
  #3 (permalink)  
Antiguo 10/06/2011, 10:21
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Variables globales visual studio 2005

perdona, pero no me he enterado muy bien. Tengo mi archivo.h y archivo.cpp y archivo2.h y archivo2.cpp. Quiero leer una variable creada en archivo en archivo 2 (archivo es un cuadro de diálogo y archivo 2 es otro cuadro de diálogo que se ejecuta sobre el primero). Algo más específico? Muchas gracias y un saludo.
  #4 (permalink)  
Antiguo 10/06/2011, 12:11
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años
Puntos: 71
Respuesta: Variables globales visual studio 2005

Si son dialogos, de una que llame a otra es preferible declarar un atributo en tu caso en archivo2 que se pase al constructor cuando lo invocas desde archivo1 y para hacerlo más interesante puedes pasarlo por referencia si vas a modificar el valor de dicha variable.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #5 (permalink)  
Antiguo 10/06/2011, 19:03
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Variables globales visual studio 2005

Archivo2 es una clase o que es?? Puedes hcar que devuelva un puntero a los datos que necesitas...o directamente si es una clase declarar una variable en la clase y leerla....podriaws mostrar un poco de codigo para ver como son las declaraciones y orientarnos un poco.
  #6 (permalink)  
Antiguo 11/06/2011, 01:53
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Variables globales visual studio 2005

Son cuadros de diálogo. Estoy programando en visual studio 2005 (MFC). La definición de la funcion Main (La que tiene la variable que quiero utilizar en otro cuadro de diálogo) es la siguiente:

//////////////////////////////////////////////////////////
class CMain : public CDialog
{
DECLARE_DYNAMIC(CMain)

public:
CMain(CWnd* pParent = NULL);
virtual ~CMain();

enum { IDD = IDD_Main };

protected:
virtual void DoDataExchange(CDataExchange* pDX);

//////////////////////////////////////////////////////////

Desde este cuadro de diálogo se ejecuta el otro, dialogo.cpp de la sigueinte forma:

//////////////////////////////////////////////////////////
void CMain::OnBnClickedgraficos()
{

Cgraficos Main;
Main.DoModal();
}
//////////////////////////////////////////////////////////

Y una vez abierto este cuadro de diálogo, desde él utilizo un timer que tiene que ir recogiendo los valores que van cambiando en el cuadro de diálogo Main para mostrarlos en gráficas. La definición de la clase Cgraficos es la siguiente:


//////////////////////////////////////////////////////////
class Cgraficos : public CDialog
{
DECLARE_DYNAMIC(Cgraficos)

public:
Cgraficos(CWnd* pParent = NULL); // Constructor est·ndar
virtual ~Cgraficos();

// Datos del cuadro de di·logo
enum { IDD = IDD_GRAFICOS };

protected:
virtual void DoDataExchange(CDataExchange* pDX);
//////////////////////////////////////////////////////////

He probado a definir Extern la variable en main.h , para poderla utilizar en el otro cuadro de diálogo pero no me funciona. No me acuerdo exactamente del error que me da pero no me deja compilar.

Vaya rollo os he dado jejeje. Bueno a ver si me pudieseis echar una mano que tengo que entregar el proyecto fin de carrera en breve y me falta prácticamente solo esto. Muchas gracias.
  #7 (permalink)  
Antiguo 13/06/2011, 16:30
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Variables globales visual studio 2005

Alguna idea por favor?
  #8 (permalink)  
Antiguo 14/06/2011, 09:47
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años
Puntos: 71
Respuesta: Variables globales visual studio 2005

Cita:
Iniciado por CapacProg Ver Mensaje
Si son dialogos, de una que llame a otra es preferible declarar un atributo en tu caso en archivo2 que se pase al constructor cuando lo invocas desde archivo1 y para hacerlo más interesante puedes pasarlo por referencia si vas a modificar el valor de dicha variable.
Yo lo hago así, puede que no sea la mejor forma pero funciona.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%

Etiquetas: globales, studio, variables, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:11.