Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   C/C++ (http://www.forosdelweb.com/f96/)
-   -   Variable global para compartir informacion entre dialogos (MFC) (http://www.forosdelweb.com/f96/variable-global-para-compartir-informacion-entre-dialogos-mfc-453755/)

user123 03/01/2007 05:10

Variable global para compartir informacion entre dialogos (MFC)
 
Hola!,

El caso es que tengo un proyecto en MFC y la siguiente duda:

Tengo que compartir informacion entre diferentes dialogs. Me gustaría crear un puntero a un objeto de la clase clase1( que contiene diferentes tipos de vectores, etc... vamos, toda la informacion con la que voy a trabajar) y poder utilizarlo en diferentes dialogos de manera que la información sea consistente. Donde debería declararlo? En miproyectodlg.h? antes de ninguna declaracion? Donde lo inicializo ? (vamos, uso el new?)

Muchas gracias

MaxExtreme 03/01/2007 07:07

Re: Variable global para compartir informacion entre dialogos (MFC)
 
Instancia la clase donde esté la lógica de tu programa, y declárala en su .h correspondiente como "extern".

Podrás acceder a ella desde cualquier punto por su propio nombre.

user123 03/01/2007 10:14

Re: Variable global para compartir informacion entre dialogos (MFC)
 
¿Pero donde la instancio? ¿En la propia clase?

Si por ejemplo tengo

clase1.h
________

class clase1{
...
};


clase1.cpp
___________

clase1::metodo1(...){...}
clase1::metodo2(...){...}
...
clase1::metodon(...){...}


Donde pongo el extern y donde se instancia?

Thanx

MaxExtreme 03/01/2007 10:42

Re: Variable global para compartir informacion entre dialogos (MFC)
 
Instanciar es crear un objeto partiendo de una clase.

Instancia tu clase en algún .cpp, y en su .h correspondiente, declárala como extern.

user123 03/01/2007 11:09

Re: Variable global para compartir informacion entre dialogos (MFC)
 
Yo pensaba que el extern habia que ponerlo en los ficheros que usaban esa variable , pero no en el .h de donde se declara. No debería poner static o algo así? es que solo con extern en el .h no me lo reconoce en otros ficheros. He probado a crear un archivo .h solo para eso en la que lo declaro como static, y compila y linka bien, pero es como si creara diferentes copias, pues los cambios que hago en un lado no quedan reflejados cuando accedo por otro lado.

En cualquier caso muchas gracias por la info :)

MaxExtreme 03/01/2007 11:21

Re: Variable global para compartir informacion entre dialogos (MFC)
 
No, static no es.

Repito, es extern, en un .h, y luego simplemente incluye ese .h en donde quieras usar la clase.


La zona horaria es GMT -6. Ahora son las 06:43.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.