Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C++ > [SFML & Autre] Questions > Lecture du sujet

[SFML & Autre] Questions

Vous devez être inscrit pour pouvoir poster des messages

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne yogou # Posté le 20/05/2008 à 16:18:43
Avatar
Groupe : Membres
Salut tout le monde !

L'installation de la version 1.2 de SFML me pose 2 ou 3 problèmes !
Lorsque je compile un programme basique (celui-ci :)Code : C++
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include <SFML/Graphics.hpp>
#include "Physic.hpp"
#include <iostream>
using namespace std;
////////////////////////////////////////////////////////////
int main()
{
    // Create the main window
    sf::RenderWindow App(sf::VideoMode::GetDesktopMode(), "SFML Views");
    App.SetBackgroundColor(sf::Color(200, 150, 100));
    sf::Image Image;
    sf::Sprite Sprite;
    if (!Image.LoadFromFile("sprite.tga"))
    {
           cerr << "Erreur !" << endl;
           exit(EXIT_FAILURE);
    }
    Sprite.SetImage(Image); // Il n'arrive pas à 'auto-import' le sf::Sprite...
    // Start game loop
    bool Running = true; // ...

Je tombe sur une erreur incompréhensible :
Info: resolving vtable for sf::Spriteby linking to __imp___ZTVN2sf6SpriteE (auto-import)
.objs\main.o:main.cpp:(.text$_ZN2sf6SpriteD1Ev[sf::Sprite::~Sprite()]+0xb): variable 'vtable for sf::Sprite' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.


Quelqu'un pourrait-il m'aider à traduire ça ?

De plus, je me pose une question simple :

A quoi servent les méthodes dites VITRUELLES ?
On les utilise quand ? Comment ?


Merci de votre aide.
Hors ligne Fvirtman # Posté le 20/05/2008 à 16:21:42
Avatar
Groupe : Membres
Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
As tu linké la lib nécessaire a la SFML ?

Une méthode virtuelle est a utiliser dans le cas du polymorphisme : quand tu as un pointeur sur la mere et que tu as instancié la fille. Si une méthode a le meme nom dans la mere et la fille, alors le mot virtual devant la méthode mere permettra d'aller chercher la méthode fille, meme si tu un pointeur sur la mere.

Tu as aussi les méthodes virtuelles pures, qui imposent a toutes les filles des méthodes obligatoires (sinon, le compilo refusera de t'instancier les filles, ni la mere)

--- "Toute tâche répétitive est automatisable..." ---
Tuto C/C++ basés sur des exemples :
http://perso.numericable.fr/~fvirtman/info/tuto/index.html
Mes programmes a peu pres finis :
http://perso.numericable.fr/~fvirtman/progs/index.html
 
Hors ligne Laurent Gomila # Posté le 20/05/2008 à 16:27:19
Groupe : Membres
Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Salut

Relis le tutoriel d'installation, notamment la passage où il est question de SFML_DYNAMIC. Tu peux aussi lier avec la version statique. Ou encore parcourir le forum, où ce problème est discuté de nombreuses fois.
Hors ligne yogou # Posté le 20/05/2008 à 16:35:17
Avatar
Groupe : Membres
Les méthodes virtuelles... CA ARRACHE !!
Enorme, finit les prises de têtes pour essayer de faire "remonter" une méthode !!!
Merci pour ta réponse !

EDIT :
Et Mer** la prise de tête pour rien !
J'avais mis la variable SFML_DYNAMIC mais j'ai pas sauvé les modifications apportées au projet entre temps...
Merci pour votre aide !
Édité le 20/05/2008 à 16:37:45 par yogou
Hors ligne yogou # Posté le 21/05/2008 à 18:33:08
Avatar
Groupe : Membres
Bonjour !
Je me permet de remonter ce topic : J'ai une autre question !
Je précise que j'ai beaucoup recherché mais pas trouvé de solution claire, même sur ce forum !
(je pense à cette discussion d'ihura).

Je vous explique :
J'ai une map du type :
Code : C++
1
std::map<std::string, int>

Comment faire pour savoir si une entrée existe ?
Hors ligne Hiura # Posté le 21/05/2008 à 18:40:28
Avatar
Groupe : Membres
std::map::find.
Voici le code que j'ai utilisé pour ClefExiste :
Code : C++
1
2
3
4
5
6
bool BasePolynome::ClefExiste(const unsigned int clef) const
{
    // Information sur std::map::find :
    // http://www.dinkumware.com/manuals/?page=map.html#map::find
    return (mon_polynome.find(clef) != mon_polynome.end()) ? true : false;
}
 
Hors ligne yogou # Posté le 21/05/2008 à 20:10:05
Avatar
Groupe : Membres
Bah c'est tout pile ce qu'il manquait :p
Merci.

ENCORE une question :
Comment spécifier qu'une fonction retourne une référence sur un objet ?
Hors ligne Hiura # Posté le 21/05/2008 à 20:53:57
Avatar
Groupe : Membres
Encore une! :p

Si tu as un type T [ ça peut être un int, double ou une classe ] , T& est une référence vers ce type. Donc, une fonction f qui retourne une référence sur T, alors tu l'écriras comme ceci :
T& f(void);
Tout simplement.

PS : c'est une lacune importante que tu as là, je te conseille de relire le(s) cours. ;)
 
Hors ligne yogou # Posté le 21/05/2008 à 21:41:32
Avatar
Groupe : Membres
Ah bien vu...
En plus, si c'est dans les cours, j'ai aucune excuse...
Je mettais le symbole '&' avant le type de retour, et non après...
Ceci dit, là j'ai un bug de compilo auquel je comprend rien.

Code : C++
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
//Les déclarations :
typedef std::map<std::string , sf::Image> Smap;
//Puis, dans la classe ImageManager :
Smap Images_list;
//Puis, dans la méthode qui à une image associe une adresse :
if (!Key_exists (adresse))
       {
              sf::Image Img;
              Img.LoadFromFile(adresse);
              Images_list.insert(adresse,Img);
              return Images_list[adresse];
       }


Mais ce code, nikel sur le papier (tout du moins je pense, c'est loin d'être absolu :-° ) rencontre une erreur :
"fonction inconnue". A la place, le compilateur me propose une fonction qui commence par "std::pair..."

J'ai déjà vu cette formulation au cour de mes recherches, mais je ne vois pas comment corriger ce code...

EDIT J'ai trouvé.
Il faut rajouter une fonction "make pai".
Édité le 21/05/2008 à 22:24:52 par yogou

Retour au forum "Langage C++" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 452 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0563s (0.0346s)