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

Auteur Sujet: Erreur DLL  (Lu 3081 fois)

0 Membres et 1 Invité sur ce sujet

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Erreur DLL
« le: Novembre 29, 2014, 05:33:57 pm »
Bonjour, en essayant de faire démarrer mon programme SFML basé sur le Pattern Gamestate j'ai cette erreur
http://prntscr.com/5beeeo
Vous savez d'ou ça peut venir et ou je dois télécharger la dll fautive ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Erreur DLL
« Réponse #1 le: Novembre 29, 2014, 05:38:31 pm »
Si tu as téléchargé SFML pour Visual Studio 2012, ça ne marchera pas. Compile la toi-même pour VS 2013, ou télécharge un nightly build.
Laurent Gomila - SFML developer

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Erreur DLL
« Réponse #2 le: Novembre 29, 2014, 06:13:00 pm »
Ah zut, compiler moi même je suis pas sur que ça marchera, et un nightly build. c'est quoi ?

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Erreur DLL
« Réponse #3 le: Novembre 29, 2014, 06:15:50 pm »
http://en.sfml-dev.org/forums/index.php?topic=9513.0
J'ai téléchargé celle de VSE2013 64Bits et nope, marche toujours pas, même erreur ^^

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Erreur DLL
« Réponse #4 le: Novembre 30, 2014, 11:20:20 am »
Citer
Ah zut, compiler moi même je suis pas sur que ça marchera
Pourquoi pas ? C'est très bien expliqué et ça marche pour tout le monde.

Citer
J'ai téléchargé celle de VSE2013 64Bits et nope, marche toujours pas, même erreur ^^
Ca m'étonnerait qu'une version compilée pour Visual Studio 2013 te demande toujours les DLLs de Visual Studio 2012... ;)
Tu as encore de vieux fichiers qui traînent, ou bien tu as fait une mauvaise manip.
Laurent Gomila - SFML developer

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Erreur DLL
« Réponse #5 le: Novembre 30, 2014, 12:11:35 pm »
J'ai télécharger la Nightly de VSE2013 et j'ai remplacé le contenu du dossier de la SFML 2.1 2012 par celui de la nightly build, j'ai oublié quelque chose ? ^^

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Erreur DLL
« Réponse #6 le: Novembre 30, 2014, 12:14:15 pm »
http://prntscr.com/5bodna
J'ai VS Express, ça change quelque chose ? Sinon je peux télécharger ou cette DLL

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Erreur DLL
« Réponse #7 le: Novembre 30, 2014, 01:38:37 pm »
Citer
J'ai télécharger la Nightly de VSE2013 et j'ai remplacé le contenu du dossier de la SFML 2.1 2012 par celui de la nightly build, j'ai oublié quelque chose ? ^^
Est-ce que tu n'avais pas copié les DLLs de SFML dans ton projet aussi ?
Est-ce que ton projet utilise d'autres bibliothèques que SFML ?

Citer
J'ai VS Express, ça change quelque chose ?
Non.

Citer
Sinon je peux télécharger ou cette DLL
Elle ne se télécharge pas, c'est la DLL de debug du runtime C de Visual C++. Mieux vaut régler cette histoire proprement.
Laurent Gomila - SFML developer

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Erreur DLL
« Réponse #8 le: Novembre 30, 2014, 02:03:32 pm »
Citer
Est-ce que tu n'avais pas copié les DLLs de SFML dans ton projet aussi ?
Est-ce que ton projet utilise d'autres bibliothèques que SFML ?
J'ai copié toutes les dll -d dans le dossier de l'exécutable (Racine du projet/debug)
Non, c'est la seule que j'utiliser

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Erreur DLL
« Réponse #9 le: Novembre 30, 2014, 02:20:32 pm »
J'ai tenté de recompiler la SFML, j'ai placé les dll obtenues dans le dossier de l'exécutable et : http://prntscr.com/5bpe02
EDIT : Je l'ai refais mais en x86, et la j'ai ça ^^
http://prntscr.com/5bpk3y
RE-EDIT : Bingo, j'ai réussi à le faire fonctionner, mais j'ai un soucis, avec mon pattern gamestate, le voici
J'ai ce code qui provoque une erreur
void SMenu::Update(CGameEngine* game)
{
       
}
void SMenu::Draw(CGameEngine* game)
{
        game->m_window->draw(trollface);
}
#include <stdio.h>
#include <iostream>
#include <SFML/Graphics.hpp>
#include "gameengine.h"
#include "gamestate.h"
#include "../globals.h"
#include <assert.h>
void CGameEngine::Init(const char* title, int width, int height, bool fullscreen)
{
        if ( fullscreen ) {
                m_window = new sf::RenderWindow(sf::VideoMode(width, height), title,sf::Style::Fullscreen);
        }
        else
        {
                m_window = new sf::RenderWindow(sf::VideoMode(width, height), title);
        }
        m_fullscreen = fullscreen;
        m_running = true;
        printf("Game engine op and running\n");
}

void CGameEngine::Cleanup()
{
        // cleanup the all states
        while (!states.empty()) {
                states.back()->Cleanup();
                states.pop_back();
        }

        // switch back to windowed mode so other
        // programs won't get accidentally resized
        if (m_fullscreen) {
                m_window->setSize(sf::Vector2u(MIN_SCREENSIZE_X,MIN_SCREENSIZE_Y));
        }

        printf("Game engine cleaned and shut down\n");

        // shutdown SDL
        m_window->close();
}

void CGameEngine::ChangeState(CGameState* state)
{
        // cleanup the current state
        if ( !states.empty() ) {
                states.back()->Cleanup();
                states.pop_back();
        }

        // store and init the new state
        states.push_back(state);
        states.back()->Init();
}

void CGameEngine::PushState(CGameState* state)
{
        // pause current state
        if ( !states.empty() ) {
                states.back()->Pause();
        }

        // store and init the new state
        states.push_back(state);
        if (states.back() == NULL)
        {
                cout << "NOPE";
                cin.get();
                exit(-1);
        }
        else
        {
                states.back()->Init();
        }
}

void CGameEngine::PopState()
{
        // cleanup the current state
        if ( !states.empty() ) {
                states.back()->Cleanup();
                states.pop_back();
        }

        // resume previous state
        if ( !states.empty() ) {
                states.back()->Resume();
        }
}


void CGameEngine::HandleEvents()
{
        // let the state handle events
        sf::Event x;
        if (m_window->pollEvent(x))
        {
                if (x.type == sf::Event::Closed)
                        Cleanup();
        }
        else //Except for the Quit event, handle them via the last state !
                states.back()->HandleEvents(this);
}

void CGameEngine::Update()
{
        // let the state update the game
        states.back()->Update(this);
}

void CGameEngine::Draw()
{
        // let the state draw the screen
        states.back()->Draw(this);
}
 

Enfait, je lance mon programme et y'a ça : PAGE BLANCHE http://prntscr.com/5bptpb
Puis, je veux le fermer et bim http://prntscr.com/5bptua Une Debug assertion sauvage apparait
« Modifié: Novembre 30, 2014, 03:08:11 pm par MyPix »

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Erreur DLL
« Réponse #10 le: Novembre 30, 2014, 08:06:02 pm »
C'est, j'ai résolu le soucis ^^