Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Definición doble de variables

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Definición doble de variables Responder citando

Hola

En mi aplicación aparecen muchísimos Linker warnings, como estos, no sé si es por incluir en DCT.cpp, el módulo principal.h...... el caso es que en dct.h defino demo1,demo2,..etc, es decir, es el único sitio donde los declaro y luego en estos warnings aparece como si los declarara también en EditVal.cpp, SelFilter.cpp.....

Si podéis echarme una mano y darme alguna pista de porqué me salen tantos warnings os lo agradecería.


[Linker Warning] Public symbol '_demo1' defined in both module C:\MIS DOCUMENTOS\PROYECTO\TRABAJO\ACTUAL PROYECTO19-12-02\PRINCIPAL.OBJ and C:\MIS DOCUMENTOS\PROYECTO\TRABAJO\ACTUAL PROYECTO19-12-02\DCT.OBJ

[Linker Warning] Public symbol '_demo1' defined in both module C:\MIS DOCUMENTOS\PROYECTO\TRABAJO\ACTUAL PROYECTO19-12-02\PRINCIPAL.OBJ and C:\MIS DOCUMENTOS\PROYECTO\TRABAJO\ACTUAL PROYECTO19-12-02\EDITVAL.OBJ

[Linker Warning] Public symbol '_demo1' defined in both module C:\MIS DOCUMENTOS\PROYECTO\TRABAJO\ACTUAL PROYECTO19-12-02\PRINCIPAL.OBJ and C:\MIS DOCUMENTOS\PROYECTO\TRABAJO\ACTUAL PROYECTO19-12-02\SELFILTER.OBJ

[Linker Warning] Public symbol '_demo2' defined in both module C:\MIS DOCUMENTOS\PROYECTO\TRABAJO\ACTUAL PROYECTO19-12-02\PRINCIPAL.OBJ and C:\MIS DOCUMENTOS\PROYECTO\TRABAJO\ACTUAL PROYECTO19-12-02\DCT.OBJ
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

En efecto, hay algún problema en como estas declarando, bueno No cómo estas declarando sino DONDE, revisa bien tu código o si puedes repostea aquí parte de tu código para poder ayudarte.

Saludos, Raúl
Volver arriba
Mensaje    Asunto: Responder citando

EN DCT.H Hago una serie de declaraciones de esta forma, y las inicializo aquí para poder usarlas en cualquier módulo con sólo incluir la cabecera de dct.h, pero al compilar me la los problemas de lincaje anteriores,cuando sólo las defino aquí. Cómo debo definir estas variables para que no me dé los errores anteriores?

#ifndef dctH
#define dctH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Menus.hpp>
//--------------------------------------------------------------------------
class Tfrmdct : public TForm
{
__published: // IDE-managed Components

........
private: // User declarations
public: // User declarations
......
}

//---------------------------------------------------------------------------
extern PACKAGE Tfrmdct *frmdct;
//---------------------------------------------------------------------------
long int demo1[8][8]={{16,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo2[8][8]={{16,16,16,16,235,235,235,235},{16,16,235,235,235,235,235,235},{16,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo3[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo4[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo5[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo6[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo7[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo8[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo9[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo10[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};

long int demo0aux[64]={16,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235};
//horizontal
long int demo1aux[64]={16,16,235,235,235,16,16,235,235,235,235,235,235,235,16,16, 235,235,235,235,235,235,235,235,235,235,235,16,16,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235};
//vertical
long int demo2aux[64]={16,235,16,16,235,235,235,235,235,16,16, 235,235,235,235,235,235,235,235,235,16,16,235,235,235,235,235,235,235,235,235,235,235,235,235,16,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235};
//h+v
long int demo3aux[64]={16,16,16,16,235, 16, 16,235,235,16, 16, 235,235,235,16, 16, 235,235,235,235,16,16,235,235,235,235,235,16,16,235,235,235,235,235,235,16,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235};


#endif
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Ok, prueba esto:

Declaralas en la parte publica del .h

Código:

#ifndef dctH
#define dctH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Menus.hpp>
//--------------------------------------------------------------------------
class Tfrmdct : public TForm
{
__published: // IDE-managed Components

........
private: // User declarations
public: // User declarations

long int demo1[8][8]={{16,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo2[8][8]={{16,16,16,16,235,235,235,235},{16,16,235,235,235,235,235,235},{16,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo3[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo4[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo5[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo6[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo7[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo8[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo9[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};
long int demo10[8][8]={{16,16,16,16,16,16,16,16},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235},{235,235,235,235,235,235,235,235}};

long int demo0aux[64]={16,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235};
//horizontal
long int demo1aux[64]={16,16,235,235,235,16,16,235,235,235,235,235,235,235,16,16, 235,235,235,235,235,235,235,235,235,235,235,16,16,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235};
//vertical
long int demo2aux[64]={16,235,16,16,235,235,235,235,235,16,16, 235,235,235,235,235,235,235,235,235,16,16,235,235,235,235,235,235,235,235,235,235,235,235,235,16,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235};
//h+v
long int demo3aux[64]={16,16,16,16,235, 16, 16,235,235,16, 16, 235,235,235,16, 16, 235,235,235,235,16,16,235,235,235,235,235,16,16,235,235,235,235,235,235,16,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235};

}

//---------------------------------------------------------------------------
extern PACKAGE Tfrmdct *frmdct;
//---------------------------------------------------------------------------

#endif


Me cuentas que tal te fue.

Saludos, Raúl
Volver arriba
Mensaje    Asunto: Responder citando

En la parte pública de un .h no se puede inicializar ninguna variable, por eso que las inicialicé fuera...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Solo declaralas y las inicializas en el .cpp
Volver arriba
Mensaje    Asunto: lo puedes... Responder citando

Hola tyloya, estoy de acuerdo con Raul128, inicializando las variables en el cpp solucionas tu problema, y ya podras accesarlas desde cualquier modulo. es decir declarando las variables que necesitas accesar desde cualquier modulo como parte publica de tu clase

Código:

class Tfrmdct : public TForm
{
__published: // IDE-managed Components

........
private: // User declarations
public: // User declarations
//Aqui pones lo quieres ok.

......
}


en otras palabras como variables miembro,eso si publicas para que las puedas accesar mas facilmente desde otros modulos de la forma:

Código:

frmdct->Variable que quieras accesar...



Espero haberte ayudado un poco.
Salu2s.
Volver arriba
Mensaje    Asunto: Re: lo puedes... Responder citando

Probaré como me decís, pero de esa forma creo que el valor con el
que inicialice las variables en el .cpp sólo se mantiene en ese módulo y que si alguna de esas variables se usa desde otro módulo estarán vacías, es decir, sin el valor con el que se inicializó, y lo que quiero es que los valores con los que las inicialice se mantengan fijos.

Gracias a los dos por vuestra ayuda,ya os cuento si eliminé los warning. Smile
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Si aún nos has resuelto tu problema te recomiendo que leas lo siguiente, aqui se explica muy bien el uso de variables.

Saludos, Raúl

https://cppbuilder.es/viewtopic.php?t=3825&highlight=variable&sid=1bdf0ec0ed4d3d4198fdde72525af7c1
Volver arriba
Mensaje    Asunto: Responder citando

Pues no me funciona bien, pero es que tengo varios módulos en los que incluyo el .h donde tengo declaradas estas variables, y cuando hice lo que me dijiste me daba muchos problemas , por eso decidí dejarlo cmo estaba porque me iba a costar mucho revisar todo el código.
De todas formas miraré este link a ver si me aclaro y no cometo elmismo error.

https://cppbuilder.es/viewtopic.php?t=3825&highlight=variable&sid=1bdf0ec0ed4d3d4198fdde72525af7c1[/quote]
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.