elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  (SOLUCIONADO) Ayuda con los structs
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: (SOLUCIONADO) Ayuda con los structs  (Leído 6,238 veces)
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
(SOLUCIONADO) Ayuda con los structs
« en: 22 Marzo 2013, 16:54 pm »

Estoy creando un juego, necesito un struct que almacene el id del objeto con sus caracteristicas. he creado un header y accediendo solo desde el main funciona bien pero cuando intento acceder a el struct desde otro .cpp falla:

idobjeto.h

Código:
int ObjetosTotales = 0;

struct Objeto{
    
float x, y, z;
GLuint modelo;
float t_x, t_y, t_z;
int ang_x;

   void Nuevo(GLuint vmodelo, float vx,float vy,float vz,int vang_x,float vt_x,float vt_y,float vt_z) {
  modelo = vmodelo;
  ang_x = vang_x;
  x = vx; t_x = vt_x;
  y = vy; t_y = vt_y;
  z = vz; t_z = vt_z;
  ObjetosTotales++;
   }

}Objeto[5000];

Como hago para poder acceder a el desde cualquier .cpp? uso vc++2008
Gracias de antemano porfavor las respuestas lo mas detalladas posibles :)


« Última modificación: 23 Marzo 2013, 14:30 pm por Black Master » En línea

- Pásate por mi web -
https://codeisc.com
naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Ayuda con los structs
« Respuesta #1 en: 22 Marzo 2013, 17:33 pm »

Declara el arreglo en el otro cpp usando el modificador extern de la siguiente manera y no debería darte problemas.

extern struct Objecto Objeto[5000];


En línea

BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Sigue sin funcionarme
« Respuesta #2 en: 23 Marzo 2013, 13:53 pm »

No se como usarlo, porfavor ayuda:

Main.cpp
Código:
#include "header.h"
#include "struct.h"

using namespace std;

int Comprobar();

int main(){

cout << "asdasd" << endl;
Objeto[ObjetosTotales+1].Nuevo(69,1,1,1,1,1,1,1);
getch();
Comprobar();
getch();

return 0;
}

Struct.h
Código:
#ifndef STRUCTOBJETO_H
#define STRUCTOBJETO_H

int ObjetosTotales = 0;

struct Objeto{
   
float x, y, z;
int modelo;
float t_x, t_y, t_z;
int ang_x;

void Nuevo(int vmodelo, float vx,float vy,float vz,int vang_x,float vt_x,float vt_y,float vt_z) {
   modelo = vmodelo;
   ang_x = vang_x;
   x = vx; t_x = vt_x;
   y = vy; t_y = vt_y;
   z = vz; t_z = vt_z;
   ObjetosTotales++;
   }
};

extern Objeto Objeto[5000];

#endif

añadir.cpp
Código:
#include "header.h"
#include "struct.h"

using namespace std;

extern struct Objeto Objeto[5000];

int Comprobar(){
if(Objeto[ObjetosTotales].modelo == 69){
return 1;}

return 0;
}

Resultado:
Código:
Vinculando...
anadir.obj : error LNK2005: ya se definió "int ObjetosTotales" (?ObjetosTotales@@3HA) en main.obj
struct.obj : error LNK2005: ya se definió "int ObjetosTotales" (?ObjetosTotales@@3HA) en main.obj
main.obj : error LNK2001: símbolo externo "struct Objeto * Objeto" (?Objeto@@3PAU0@A) sin resolver
anadir.obj : error LNK2001: símbolo externo "struct Objeto * Objeto" (?Objeto@@3PAU0@A) sin resolver
En línea

- Pásate por mi web -
https://codeisc.com
85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: Ayuda con los structs
« Respuesta #3 en: 23 Marzo 2013, 14:02 pm »

Borrá esta línea

Citar
#include "header.h"
#include "struct.h"

using namespace std;

extern struct Objeto Objeto[5000];

int Comprobar(){
   if(Objeto[ObjetosTotales].modelo == 69){
      return 1;}

   return 0;
}
En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Ayuda con los structs
« Respuesta #4 en: 23 Marzo 2013, 14:03 pm »

sigue fallando. Msn: blackm4ster@gmail.com
Da el mismo error
En línea

- Pásate por mi web -
https://codeisc.com
85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: Ayuda con los structs
« Respuesta #5 en: 23 Marzo 2013, 14:04 pm »

dejá la anterior y borrá la otra. No se puede las 2
En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Ayuda con los structs
« Respuesta #6 en: 23 Marzo 2013, 14:06 pm »

mm no te entiendo, de que archivo borro la linea extern struct Objeto Objeto[5000];
En línea

- Pásate por mi web -
https://codeisc.com
85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: Ayuda con los structs
« Respuesta #7 en: 23 Marzo 2013, 14:06 pm »

dahh le pusiste el mismo nombre que la clase? no se puede eso


Código:
Objeto objeto[5000];

ponelo así, ves la minúscula en el nombre?

tenés que declararlo en algún archivo .cpp y luego en algún archivo de inclusión .h lo ponés como extern.
Esto significa que cuando el objeto se use en un archivo.cpp se hace una referencia al objeto que fue declarado en otro archivo .cpp.

« Última modificación: 26 Marzo 2013, 18:08 pm por 85 » En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Ayuda con los structs
« Respuesta #8 en: 23 Marzo 2013, 14:09 pm »

a ver sigue sin funcionar:
struct.h
Código:
#ifndef STRUCTOBJETO_H
#define STRUCTOBJETO_H

int ObjetosTotales = 0;

struct Objeto{
   
float x, y, z;
int modelo;
float t_x, t_y, t_z;
int ang_x;

void Nuevo(int vmodelo, float vx,float vy,float vz,int vang_x,float vt_x,float vt_y,float vt_z) {
   modelo = vmodelo;
   ang_x = vang_x;
   x = vx; t_x = vt_x;
   y = vy; t_y = vt_y;
   z = vz; t_z = vt_z;
   ObjetosTotales++;
   }
};

extern Objeto objeto[5000];

#endif

main.cpp
Código:
#include "header.h"
#include "struct.h"

using namespace std;

int Comprobar();

int main(){

cout << "asdasd" << endl;
objeto[ObjetosTotales+1].Nuevo(69,1,1,1,1,1,1,1);
getch();
Comprobar();
getch();

return 0;
}

anadir.cpp
Código:
#include "header.h"
#include "struct.h"

using namespace std;


int Comprobar(){
if(objeto[ObjetosTotales].modelo == 69){
return 1;}

return 0;
}

Errores:
Código:
Vinculando...
anadir.obj : error LNK2005: ya se definió "int ObjetosTotales" (?ObjetosTotales@@3HA) en main.obj
struct.obj : error LNK2005: ya se definió "int ObjetosTotales" (?ObjetosTotales@@3HA) en main.obj
main.obj : error LNK2001: símbolo externo "struct Objeto * objeto" (?objeto@@3PAUObjeto@@A) sin resolver
anadir.obj : error LNK2001: símbolo externo "struct Objeto * objeto" (?objeto@@3PAUObjeto@@A) sin resolver
C:\Documents and Settings\isc\Mis documentos\Visual Studio 2008\Projects\Structs\Debug\Structs.exe : fatal error LNK1120: 1 externos sin resolver
En línea

- Pásate por mi web -
https://codeisc.com
naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Ayuda con los structs
« Respuesta #9 en: 23 Marzo 2013, 14:10 pm »

Advertencia - mientras estabas escribiendo, fueron publicadas 3 respuestas. Probablemente desees revisar tu mensaje.
Ejemplo sencillo:

archivo1.cpp
Código
  1. #include <iostream>
  2.  
  3. struct Objeto {
  4.    int a,b,c,d;
  5. } Objeto[5000];
  6.  
  7. int main() {
  8.    cout << "Hello world!" << endl;
  9.    return 0;
  10. }
  11.  

archivo2.cpp
Código
  1. extern struct Objeto {
  2.    int a,b,c,d;
  3. } Objeto[5000];
  4.  
  5. void funcion() {
  6.    // ...
  7. }
  8.  
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con structs C/C++ « 1 2 »
Programación C/C++
SARGE553413 13 8,326 Último mensaje 21 Junio 2013, 18:50 pm
por pacoperico
Problema structs
Programación C/C++
Ccomplica 1 2,114 Último mensaje 30 Octubre 2013, 05:53 am
por edr89
Imprimir array de Structs
Programación C/C++
dennis094 3 2,752 Último mensaje 17 Enero 2014, 02:09 am
por rir3760
[SOLUCIONADO ]Structs Dinamicas
Programación C/C++
Xenomorfo77 6 2,578 Último mensaje 7 Mayo 2014, 01:18 am
por Eternal Idol
Ayuda con un programa en C basicamente structs
Programación C/C++
ericomaniaco 2 1,647 Último mensaje 30 Noviembre 2016, 02:31 am
por ericomaniaco
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines