Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: problème lors du chargement des ressources avec visualStudio  (Lu 4869 fois)

0 Membres et 1 Invité sur ce sujet

4lex1s

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
    • E-mail
problème lors du chargement des ressources avec visualStudio
« le: Juillet 20, 2016, 02:57:27 pm »
Bonjour,
je suis passé sur VisualStudio il y a un ou deux mois à cause du bug de Code::Block avec le std::to_string
et pendant ce temps je n'ai pas fait grand chose, seulement des petits programmes, je n'avais jamais eu à afficher des textes, et je n'ai utilisé que des cercles et rectangles, je n'avais donc encore jamais chargé de fichier depuis visualStudio
mais j'ai essayé aujourd'hui d'afficher un texte pour un jeu et un problème est apparu lors du chargement de "arial.ttf", j'ai donc essayé de faire un programme rapide tenant seulement sur la fonction main() pour essayer de trouver une solution

le voici:

#include <SFML\Graphics.hpp>

int main()
{
        sf::RenderWindow mWindow(sf::VideoMode(640, 480), "test");

        sf::Font arial;
        if (!arial.loadFromFile("arial.ttf"))
        {
                return -1;
        }

        sf::Text mText;
        mText.setPosition(sf::Vector2f(5, 5));
        mText.setFont(arial);
        mText.setString("bonjour");
        mText.setColor(sf::Color::White);
        mText.setCharacterSize(32);

        while (mWindow.isOpen())
        {
                sf::Event event;
                while (mWindow.pollEvent(event))
                {
                        if (event.type == sf::Event::Closed)
                        {
                                mWindow.close();
                        }
                }

                mWindow.clear();
               
                mWindow.display();
        }

}
 

mais le resultat est un:
Citer
Failed to load font " (quelques caractères bizarres)arial.ttf

puis beaucoup de caractères bizarres avec de temps en temps beaucoup de ╠ à la suite

et le programme fini par planter, si je le lance sous visualStudio voici le message d'erreur:
Citer
Exception levée à 0x6DA4D3F0 (vcruntime140.dll) dans Projet1.exe : 0xC0000005 : Violation d'accès lors de la lecture de l'emplacement 0x00FBE000.

pour être sur qu'il soit bien au bon endroit je l'ai mit à la fois dans les fichiers "Projet1" et "Debug"

j'ai mit un return -1; au cas où c'était mal chargé, mais le programme plante avant avoir pu quitter, ce qui veut dire qu'il plante surement pendant le arial.loadFromFile("arial.ttf")
et cela me l'avait aussi pour une texture en chargeant un .png

cela ne me l'avais jamais fait sur codeblock, mais je ne compte pas y retourner

j'aimerais donc un peu d'aide pour régler ce problème

merci pour les réponses que vous m'apporterez  :)

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : problème lors du chargement des ressources avec visualStudio
« Réponse #1 le: Juillet 20, 2016, 05:59:36 pm »
Citer
je suis passé sur VisualStudio il y a un ou deux mois à cause du bug de Code::Block avec le std::to_string

tu utilises une version obsolète de mingw qui n'intègre pas bien c++11, la solution, mettre à jour le compilateur.

if (!arial.loadFromFile("arial.ttf"))

ou est la fonte ?

Citation de: la doc
Note that this function know nothing about the standard fonts installed on the user's system, thus you can't load them directly.

http://www.sfml-dev.org/documentation/2.3.2-fr/classsf_1_1Font.php#ab020052ef4e01f6c749a85571c0f3fd1

4lex1s

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
    • E-mail
Re : problème lors du chargement des ressources avec visualStudio
« Réponse #2 le: Juillet 20, 2016, 06:35:54 pm »
merci d'avoir répondu, j'ai changé d'ordinateur, j'ai donc installé VisualStudio hier, je pense donc qu'il s'agit de la dernière version, mais je vais quand même essayer de mettre à jour mon compilateur, mais je ne sais pas où le faire.

et sinon j'ai mit ma fonte dans le fichier dans lequel est créé le .exe
et celui où se trouve mes .cpp et .h

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : problème lors du chargement des ressources avec visualStudio
« Réponse #3 le: Juillet 20, 2016, 07:10:06 pm »
pour ton soucis de compilateur, je faisait référence à tes écrits, donc mingw + codeblock, pas vstudio.

le plus "sain" à faire & de compilé puis d'installer la SFML avec le compilateur de ton choix, je ne prends jamais les binaires disponible sur le site.

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : problème lors du chargement des ressources avec visualStudio
« Réponse #4 le: Juillet 20, 2016, 07:26:09 pm »
Me semble que quand on mélange debug et release, on peut se retrouver avec plein de caractères chelous dans la console quand on charge une texture ou une police.
Par exemple tu lies les versions -d (sfml-system-d) mais tu compiles en release. Ou l'inverse (sfml-system) alors que tu compiles en debug. Non ?

4lex1s

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
    • E-mail
Re : problème lors du chargement des ressources avec visualStudio
« Réponse #5 le: Juillet 20, 2016, 07:47:48 pm »
pour ton soucis de compilateur, je faisait référence à tes écrits, donc mingw + codeblock, pas vstudio.

le plus "sain" à faire & de compilé puis d'installer la SFML avec le compilateur de ton choix, je ne prends jamais les binaires disponible sur le site.

tu parles de télécharger la version "source code" ?

je l'avais fait pour codeblock avec cmake en utilisant ce tutoriel : http://www.sfml-dev.org/tutorials/2.3/compile-with-cmake.php

je ne l'ai pas fait avec visual studio parce que cela marchait bien jusque là, mais du coup je vais essayer.


Me semble que quand on mélange debug et release, on peut se retrouver avec plein de caractères chelous dans la console quand on charge une texture ou une police.
Par exemple tu lies les versions -d (sfml-system-d) mais tu compiles en release. Ou l'inverse (sfml-system) alors que tu compiles en debug. Non ?

si j'ai bien compris tu parles de la manière dont j'ai rempli les propriétés du projet. j'ai fait :

tout est dans "Toutes les configurations"

dans la partie C/C++ -> Général
autres répertoires Include:
F:\visualSFML\include

dans la partie Éditeur de liens -> Général
Répertoires de bibliotèques suplémentaire:
F:\visualSFML\lib

dans la partie Éditeur de liens -> entrée
Dépendances supplémentaires:
sfml-graphics.lib
sfml-window.lib
sfml-system.lib

je devrais donc remplir les parties "Debug" et "Release" séparément ?

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Re : problème lors du chargement des ressources avec visualStudio
« Réponse #6 le: Juillet 20, 2016, 08:20:38 pm »
je devrais donc remplir les parties "Debug" et "Release" séparément ?
Oui.
Pour les 2 repertoires tu peux laisser comme tu as mis c'est bien.
Mais pour sfml-graphics.lib etc. tu ferais mieux de le retirer de "toutes les configurations", et de remplir "sfml-graphics.lib" (etc.) dans la partie Release, et "sfml-graphics-d.lib" (etc.) dans la partie Debug. Car sfml-graphics.lib c'est valable juste pour la version Release.

Pour citer le tutoriel :
Citer
Il est important de lier les bibliothèques qui correspondent à la configuration : "sfml-xxx-d.lib" pour Debug, and "sfml-xxx.lib" pour Release. Un mauvais mélange pourrait entraîner des crashs.

4lex1s

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
    • E-mail
Re : problème lors du chargement des ressources avec visualStudio
« Réponse #7 le: Juillet 20, 2016, 08:42:00 pm »
ah j'ai fait ces changements et le programme marche comme prévu, j'ai refait ces changements sur le jeu sur lequel je travaillait au départ et tout va bien.

merci de m'avoir aidé

4lex1s

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
    • E-mail
Re : problème lors du chargement des ressources avec visualStudio
« Réponse #8 le: Juillet 20, 2016, 08:44:40 pm »
ah et sinon j'ai une autre question, en écrivant seulement "arial.ttf" ce fichier sera toujours chercher dans le dossier où se trouve mon .exe ?