CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

probleme visual C++

garm_bel_iblis
garm_bel_iblis
Niveau 5
18 mars 2009 à 18:21:28

Bonjour, j'ai un problème sous vc++. Je n'arrive pas à résoudre le problème suivant:

  1. include "factory_repository.h"
  1. include "leak_dumper.h"
  2. include "pch.h"
  3. include "graphics_factory_gl.h"
  4. include "graphics_factory_gl2.h"

namespace Shared{ namespace Platform{

//
==================================================
===
// class FactoryRepository
//
==================================================
===

FactoryRepository &FactoryRepository::getInstance(){
static FactoryRepository factoryRepository;
return factoryRepository;
}

GraphicsFactory *FactoryRepository::getGraphicsFactory(const string &name){
if(name == "OpenGL"){
return &graphicsFactoryGl;
}
else if(name == "OpenGL2"){
return &graphicsFactoryGl2;
}

throw runtime_error("Unknown graphics factory: " + name);
}

SoundFactory *FactoryRepository::getSoundFactory(const string &name){
if(name == "DirectSound8"){
return &soundFactoryDs8;
}

throw runtime_error("Unknown sound factory: " + name);
}

}}//end namespace

et voilà les deux erreurs :
error C2065: 'graphicsFactoryGl2' : identificateur non déclaré
error C2065: 'soundFactoryDs8' : identificateur non déclaré

Avez vous une solution? merci d'avance

godrik
godrik
Niveau 30
18 mars 2009 à 18:56:01

Ce n'est pas un probleme de visual C++, mais un probleme de C++ tout court ! :)

Tu as des variables qui ne sont pas declare dans ta classe FactoryRepository.
On sait qu'elle est bien inclu quelque part parcequ'il trouve d'autre variable comme graphicsFactoryGl.

Cependant si tu ne sais pas diagnostiquer ce genre d'erreur toi meme, je te conseille d'arreter de toucher a ce code qui a l'air bien complique. Tu vas te tirer une balle dans le pied.

garm_bel_iblis
garm_bel_iblis
Niveau 5
18 mars 2009 à 19:11:37

voilà le le contenu du fichier ou c déclaré:

  1. ifndef _SHARED_PLATFORM_FACTORYREPOSITORY_H_
  2. define _SHARED_PLATFORM_FACTORYREPOSITORY_H_
  1. include <string>
  1. include "graphics_factory.h"
  2. include "sound_factory.h"
  1. include "graphics_factory_gl.h"
  2. include "graphics_factory_gl2.h"
  3. include "sound_factory_ds8.h"

using std::string;

using Shared::Graphics::GraphicsFactory;
using Shared::Sound::SoundFactory;
using Shared::Graphics::Gl::GraphicsFactoryGl;
using Shared::Graphics::Gl::GraphicsFactoryGl2;
using Shared::Sound::Ds8::SoundFactoryDs8;

namespace Shared{ namespace Platform{

// class FactoryRepository

class FactoryRepository{
private:
FactoryRepository(){};
FactoryRepository(FactoryRepository &);
void operator=(FactoryRepository &);

private:
GraphicsFactoryGl graphicsFactoryGl;
GraphicsFactoryGl2 graphicsFactoryGl2;
SoundFactoryDs8 soundFactoryDs8;

public:
static FactoryRepository &getInstance();

GraphicsFactory *getGraphicsFactory(const string &name);
SoundFactory *getSoundFactory(const string &name);
};

}}//end namespace

  1. endif
Paulop
Paulop
Niveau 12
18 mars 2009 à 19:15:18

Peux tu mettre les codes sur pastebin ?

http://pastebin.com/

Ca garde l'indentation et la coloration syntaxique c'est mieux :)

garm_bel_iblis
garm_bel_iblis
Niveau 5
18 mars 2009 à 19:19:23

merci

godrik
godrik
Niveau 30
18 mars 2009 à 19:32:51

Si c'etait bien ce fichier la qui est inclut, il n'y aurait pas d'erreur. Donc j'imagine que ce n'est pas ce fichier la qui est inclut. Les fichiers sont bien enregistrer ? il n'y a pas deux fichiers qui ont le meme nom ? Ou bien deux fichiers qui utilise le nom symbolique _SHARED_PLATFORM_FACTORYREPOSITORY_H_ pour eviter la double inclusion ?

garm_bel_iblis
garm_bel_iblis
Niveau 5
18 mars 2009 à 21:59:59

J'ai bien vérifié mais non il n'y a pas de pb et c'est bien lui le fichier inclus, il doit y avoir une erreur quelque part. Avez vous une idée dans les options de visual studio?

godrik
godrik
Niveau 30
18 mars 2009 à 22:01:53

rajoute un message de debuggage dans le constructeur et verifie qu'il apparait bien. Juste pour etre sur que c'est bien ce bout de code qui est utilise.

garm_bel_iblis
garm_bel_iblis
Niveau 5
18 mars 2009 à 23:24:40

test effectué. c bien ce bout de code. le premier cité (premier du sujet) est le cpp et le deuxième est l'en tête (.h)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment