• Viernes 15 de Noviembre de 2024, 04:57

Autor Tema:  Clases En Librería Estáticas  (Leído 1571 veces)

maveganzones

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Clases En Librería Estáticas
« en: Lunes 21 de Febrero de 2005, 20:36 »
0
Hola a todos.

Estoy creando una ibrería estática llamada 'X' en c++ con el editor vc6.

Dentro del proyecto tengo dos ficheros:
fichero.h
fichero.cpp

En fichero.h defino una clase 'A' y sus métodos de la forma habitual.

En fichero.cpp implemento la clase 'A' y sus métodos tb de la forma habitual.

Al compilar me da el siguiente error: 'A' no es un espacio de nombres ni una clase.

El mismo código compilado como una clase aparte de un proyecto 'Aplicación win32' funciona así que estoy cometiendo un error de base en cuanto a la programación de librerías estáticas.

Agradecería mucho q me ayudaseis porque estoy parado y seguro que es una chorrada.

Un saludo

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Clases En Librería Estáticas
« Respuesta #1 en: Martes 22 de Febrero de 2005, 06:54 »
0
Hola, Sabes deberias implementar un ejemplo de lo que haz hecho, por que creo que no esta del todo claro. :huh:
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

maveganzones

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Clases En Librería Estáticas
« Respuesta #2 en: Martes 22 de Febrero de 2005, 17:01 »
0
Tienes razón.

fichero.h
==================

#ifndef FICHERO_H
#define FICHERO_H

class A {

public:

void A();
void ~A();
int getNumber();
void setNumber(int n);

private:

int number;

#endif

===========================

fichero.cpp
=======

#include "fichero.h"

void A::A() {
number = 0;
}

void A::~A() {}

void setNumber(int n) { number = n; }

int getNumber() { return number; }

===========================

Esto definido como una clase normal dentro de un proyecto "Win32 apllication"  funciona, pero dentro de un proyecto "Static Library" no.

Al compilar fichero.cpp me da el error "A is not a namespace not a class".

¿Alguna idea?

maveganzones

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Clases En Librería Estáticas
« Respuesta #3 en: Martes 22 de Febrero de 2005, 17:32 »
0
Solucionado. había algún problema con la opción "Precompiled headers" de visual c++.

maveganzones

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Clases En Librería Estáticas
« Respuesta #4 en: Lunes 28 de Febrero de 2005, 19:07 »
0
Nueva movida con las librerías estáticas:  :ayuda:

Tengo un proyecto llamado "libreria" que pretende ser una librería estática con funciones y clases de apoyo que voy a usar después en distintos proyectos.

Para ello tengo varios ficheros de cabecera con sus respectivos ficheros de implementación:

fichero1.h -> fichero1.cpp
fichero2.h -> fichero2.cpp
...

fichero1 contiene una serie de clases y fichero 2 sólo tiene funciones.

Las funciones de fichero2 usan las clases de fichero1. Ningún problema. Me compila y construye bien y ya tengo mi librería.

Ahora creo un proyecto nuevo en el que voy a usar "libreria.lib". Si utilizo las clases definidas en "fichero1" no hay ningún problema; pero si utlizo las funciones definidas en "fichero2" y que tb esán incluidas en lalibrería me da un error al linkar.

¿Alguien tiene alguna pista?

 :brickwall: