Bonjour , j'essai de recompilé mon programme sur VC++ 2005 , mais plein d'erreur s'affiche :s. j'en est reglé une grande partie mais là je n'y arrive plus c'est pourquoi je vous demande de l'aide ;).
#ifndef _ARCHIVE_H_
#define
_ARCHIVE_H_
#include
"BaseDef.h"/* --------------------- Les fichiers include système ----------------------- */
#include
<fstream.h>using
namespace std;
#include
#include
"Cstring.h"#include
"Bloc.h"#include
"Rtti.h"
/* -------------------------------------------------------------------------- *\
CLASSE : ObjetConnu
ROLE :
Classe privée à un Fichier Archive permettant d'assurer la persistance d'objets.
\* -------------------------------------------------------------------------- */
class
_Base_Class ObjetConnu{
friend
class Archive;
private:
// ConstructeurObjetConnu(
int no,
const
void *p);
// Données membres
int noObjet;
const
void *ptr;
public:
// Constructeur public (pour les Blocs)ObjetConnu() {noObjet=0; ptr=0; }
// Destructeur~ObjetConnu() {}
// opérations
int
operator<(
const ObjetConnu &autre)
const {
return (autre.ptr < ptr); }
int
operator==(
const ObjetConnu &autre)
const {
return (autre.ptr == ptr); }};
/* -------------------------------------------------------------------------- *\
CLASSE : Archive
ROLE :
La classe Archive permet de mettre en oeuvre la persistance d'objets avec
leurs relations (pointeurs) simplement en les y insérant et en les y extrayant
comme on le fait avec des flux. La classe , bien que non abstraite, n'est
pas destinée à être instanciée directement mais elle est la classe de base des
classes comme <FichierArchive>.
On pourrait également dériver une classe <MemoireArchive> basée sur les
<strstream> et qui serait utilisée pour les Presse-Papiers.
VOIR AUSSI :
CLASSE FichierArchive
\* -------------------------------------------------------------------------- */
class
_Base_Class Archive{
public :
enum Type {BINAIRE, ASCII};
// Constructeurs et DestructeurArchive();
Archive(istream *pFlux, Type type=BINAIRE);
Archive(ostream *pFlux, Type type=BINAIRE);
virtual ~Archive();
// Informationsios::open_mode DemanderModeOuverture() {
return mode; }
// ios::in ou ios::out
operator
void *()
const {
return flux->
operator
void *(); }
operator !()
const {
return flux->
operator !(); }
int Lecture()
const {
return mode==ios::in; }
int Ecriture()
const {
return mode==ios::out; }
int Eof()
const {
return flux->eof(); }
// Enregistrement d'un objet
const
void *ObjetDeNumero(
int no);
int NumeroDeObjet(
const
void *objet);
int EnregistrerObjet(
const
void *);
// InsertionArchive&
operator<<(
const
char *);Archive&
operator<<(
char);Archive&
operator<<(
short);Archive&
operator<<(
int);Archive&
operator<<(
long);Archive&
operator<<(
float);Archive&
operator<<(
double);Archive&
operator<<(
unsigned
char);Archive&
operator<<(
unsigned
short);Archive&
operator<<(
unsigned
int);Archive&
operator<<(
unsigned
long);Archive&
operator<<(
bool);Archive&
operator<<(streambuf *);Archive&
operator<<(ostream& (*)(ostream&));Archive&
operator<<(ios& (*)(ios&));Archive&
operator<<(
const String &);Archive&
operator<<(
const MetaClasse *);Archive& write(
const
char *,
int);
// ExtractionArchive&
operator>>(
char*);Archive&
operator>>(
char&);Archive&
operator>>(
short&);Archive&
operator>>(
int&);Archive&
operator>>(
long&);Archive&
operator>>(
float&);Archive&
operator>>(
double&);Archive&
operator>>(
unsigned
char&);Archive&
operator>>(
unsigned
short&);Archive&
operator>>(
unsigned
int&);Archive&
operator>>(
unsigned
long&);Archive&
operator>>(
bool&);Archive&
operator>>(streambuf*);Archive&
operator>>(ios& (*)(ios&));Archive&
operator>>(String &);Archive&
operator>>(
const MetaClasse *&);Archive& read(
char *,
int);
// CommentaireArchive& Commentaire(
const
char*);
protected:
// Données membresios::open_mode mode;
// Mode d'ouverture de l'archive (ios::in ou ios::out)Type type;
// Archive binaire ou asciiiostream *flux;
// Fonctions membres
int Ouvrir();
void Fermer();
private:Bloc<ObjetConnu> lesObjets;
// Objets dans le dictionnaire
int nbObjets;
// nombre d'éléments dans le dictionnaire};
/* -------------------------------------------------------------------------- *\
FONCTION : operator<<(Archive &, const T *)
ROLE :
Permettre d'insérer un pointeur sur un objet dans une archive
ENTREES :
est l'archive dans laquelle on veut écrire
est le pointeur sur l'objet à écrire
\* -------------------------------------------------------------------------- */
template
<
class T> Archive&
operator<<(Archive &ar,
const T *pObjet);
/* -------------------------------------------------------------------------- *\
FONCTION : operator>>(Archive &, const T *&)
ROLE :
Permettre d'extraire un pointeur sur un objet d'une archive
ENTREE :
est l'archive dans laquelle on veut extraire
SORTIE :
sera rempli avec l'adresse de l'objet extrait
\* -------------------------------------------------------------------------- */
template
<
class T> Archive&
operator>>(Archive &ar,
const T* &pObjet);
#ifndef
unix
#include
"Archive.c"#endif
// unix#endif
// _ARCHIVE_H_
voic les erreurs : 3 error C1083 impossible d'ouvrir le fichier include : fstream.h: No such file or directory
j'ai essayais de mettre <fstream> sans le h mais c'est encore pire ^^ .
Afficher la suite