Forum de la communauté SFML

Aide => Général => Discussion démarrée par: S66 le Février 24, 2015, 10:02:10 am

Titre: Erreur 0xc0000135
Posté par: S66 le Février 24, 2015, 10:02:10 am
Bonjour  :)
Alors voilà: je me lance pour faire un (grand) jeu, mais dès le départ, ça plante.
Mon debugger m'a dit un truc du genre "During startup program exited with code 0xc0000135".
Bizarre bizarre o.o'
Alors heu voilà mon .pro:
TEMPLATE = app
QT = sql widgets
TARGET = Teal

SOURCES += \
    main.cpp \
    teal_connex.cpp \
    hl_sha1wrapper.cpp \
    hl_sha1.cpp

HEADERS += \
    teal_connex.h \
    hl_sha1wrapper.h \
    hl_sha1.h \
    hl_hashwrapper.h \
    hl_types.h

INCLUDEPATH += C://Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/include
# Je suis avec SFML static, pas de DLL avec moi. J'ai pas manqué un truc à propos de ça ?
win32:CONFIG(debug, debug|release): LIBS += \
-L"C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/" -lsfml-graphics-d -lsfml-window-d -lsfml-system-d

else:win32:CONFIG(release, debug|release): LIBS += \    
-L"C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/" -lsfml-graphics -lsfml-window -lsfml-system
 
Mon main.cpp:
#include "teal_connex.h"
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/System.hpp>

int main(int argc, char *argv[])
{
    sf::RenderWindow w(sf::VideoMode(400, 400, 32), "Teal");
    Teal teal;
    while (w.isOpen())
        {
            sf::Event event;
            while (w.pollEvent(event))
            {
                if (event.type == sf::Event::Closed)
                    w.close();
            }

            w.clear();
            w.draw(teal);
            w.display();
        }
    return 0;
}
 
Mon teal_connex.h:
#ifndef TEAL_CONNEX_H
#define TEAL_CONNEX_H

#include <QtSql>
#include <QWidget>
#include <QLabel>
#include <QLineEdit>
#include <QFormLayout>
#include <QVBoxLayout>
#include <QPushButton>
#include <QString>
#include <QMessageBox>
#include "hl_sha1wrapper.h"
#include "hl_sha1.h"
#include "hl_hashwrapper.h"
#include <string>
#include <QPixmap>

#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/System.hpp>

class Teal : public QWidget, public sf::Drawable
{
public:
    Teal();
    ~Teal();
public slots:
    void connex();
private:
    Q_OBJECT
    void draw(sf::RenderTarget& target, sf::RenderStates states) const;
    QLabel *titre;
    QLabel *connexion;
    QWidget fen;
    QVBoxLayout *texte;
    QLineEdit *pseudo;
    QLineEdit *pass;
    QFormLayout *formLayout;
    QVBoxLayout *layoutPrincipal;
    QPushButton *boutonConnexion;
    QString s_pseudo;
    QString s_pass;
    QString t_pseudo;
    QString t_pass;
    int s_id;
};
#endif // TEAL_CONNEX_H
 
Et mon teal_connex.cpp:
#include "teal_connex.h"

using namespace sf;

Teal::Teal() : QWidget(), Drawable()
{
    this->setFixedSize(400, 400);
    QWidget fen(this);
        texte = new QVBoxLayout;
            titre = new QLabel("Teal");
            connexion = new QLabel("Connexion");
        texte->addWidget(titre);
        texte->addWidget(connexion);
        pseudo = new QLineEdit;
        pass = new QLineEdit;
        pass->setEchoMode(QLineEdit::Password);

        formLayout = new QFormLayout;
        formLayout->addRow("Pseudo: ", pseudo);
        formLayout->addRow("Pass:", pass);

        layoutPrincipal = new QVBoxLayout;
        layoutPrincipal->addLayout(texte);
        layoutPrincipal->addLayout(formLayout); // Ajout du layout de formulaire

        boutonConnexion = new QPushButton("Se Connecter");

        QObject::connect(boutonConnexion, SIGNAL(clicked()), this, SLOT(connex()));
        layoutPrincipal->addWidget(boutonConnexion); // Ajout du bouton

        fen.setLayout(layoutPrincipal);
        fen.show();

        //End of fen
    QWidget allGame(this);
        /*QWidget servChoice(&allGame);
            //...

            //End of servChoice*/

        QWidget charChoice(&allGame);

            //End of charChoice
        QWidget game(&allGame);
            QWidget normal(&game);

            QWidget cbt(&game);

            QWidget statusBar(&game);

            //End of game

    // End
    this->show();
    allGame.hide();
}
Teal::~Teal() {
    delete layoutPrincipal;
    layoutPrincipal = 0;
}
void Teal::connex() {
    QString t_pseudo = pseudo->text();
    QString t_pass = pass->text();
    std::string std_t_pass = t_pass.toStdString();
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setUserName("un truc");
    db.setPassword("un truc");
    db.setDatabaseName("un truc");
    if (db.open()) {
        QSqlQuery qry("SET autocommit = 0",db);
        if (!qry.exec()) {
            db.close();
            QMessageBox::critical(&fen, "Erreur", "Erreur: Unable to do autocommit. Error executing query qry. Merci de reporter cette erreur.");
            return;
        } else {
            hashwrapper *sha1 = new sha1wrapper();
            std::string std_try_pass = sha1->getHashFromString(std_t_pass);
            QString v_pass(std_try_pass.c_str());
            delete sha1;
            sha1 = 0;
            QSqlQuery query;
            query.prepare("SELECT * FROM membre WHERE pseudo = ? AND pass = ?");
            query.addBindValue(t_pseudo);
            query.addBindValue(v_pass);
            if(!query.exec())
            {
                db.close();
                QMessageBox::warning(&fen, "Erreur", "Erreur: Unable to execute query query. Merci de reporter cette erreur.");
                //qDebug() << query.lastError();
                return;
            }
            if (!query.first()) {
                db.close();
                QMessageBox::warning(&fen, "Erreur", "Erreur: Mauvais pseudo ou mot de passe.");
                return;
            }
            if (query.value(10).toString() == "yes") {
                QMessageBox::warning(&fen, "Erreur", "Erreur: Vous êtes banni.");
                db.close();
                return;
            }
            this->s_id = query.value(0).toInt();
            this->s_pseudo = query.value(2).toString();
            this->s_pass = query.value(3).toString();
            QMessageBox::information(&fen, "Connecté", "Vous êtes connecté, "+s_pseudo); // PrepareToPlay
            // fen.hide();
            // servChoice.show();
        }
        db.commit();
        db.close();
    } else {
        QMessageBox::critical(&fen, "Erreur", "Erreur: Unable to open database.");
        return;
    }
    return;
}



// Truc qui sert à rien.
void Teal::draw(sf::RenderTarget& target, sf::RenderStates states) const
    {
        return;
    }
 
Err... je vois pas le problème... vous pourriez m'aider siouplait ?  :D
M'ci  :)
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Février 24, 2015, 10:11:40 am
Citer
# Je suis avec SFML static, pas de DLL avec moi. J'ai pas manqué un truc à propos de ça ?
Je ne vois rien dans ton .pro qui suggère l'utilisation des bibliothèques statiques de SFML. Il ne suffit pas de le dire pour que ça arrive magiquement ;)

Relis le tutoriel de démarrage attentivement. Tout est expliqué.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 24, 2015, 07:01:09 pm
C'était donc ça ! Ah bin merci alors ^^
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 26, 2015, 08:54:05 am
Eh bah... toujours pas ! :l
Je vois pas du tout le problème... Help please ?
mon .pro:
TEMPLATE = app
QT = sql widgets
TARGET = Teal

SOURCES += \
    main.cpp \
    teal_connex.cpp \
    hl_sha1wrapper.cpp \
    hl_sha1.cpp

HEADERS += \
    teal_connex.h \
    hl_sha1wrapper.h \
    hl_sha1.h \
    hl_hashwrapper.h \
    hl_types.h

DEFINES += SFML_STATIC

INCLUDEPATH += C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/include
DEPENDPATH += C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/include


win32:CONFIG(debug, debug|release): LIBS += \                            #
-LC:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/libsfml-graphics-s-d.a \  #
-LC:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/libsfml-window-s-d.a \    #
-LC:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/libsfml-system-s-d.a      #

else:win32:CONFIG(release, debug|release): LIBS += \                     #
C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/libsfml-graphics-s.a \    #
C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/libsfml-window-s.a \      #
C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/libsfml-system-s.a        #
 
mon main:
#include "teal_connex.h"
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/System.hpp>

int main(int argc, char *argv[])
{
    Teal teal;
    while (teal.isOpen())
        {
            sf::Event event;
            while (teal.pollEvent(event))
            {
                if (event.type == sf::Event::Closed)
                    teal.Window::close();
            }

            teal.clear();
            teal.display();
        }
    return 0;
}
 
mon début de .cpp et .h
//.cpp
Teal::Teal() : QWidget(), RenderWindow(VideoMode(400, 400), "Teal")
//.h
class Teal : public QWidget, public sf::RenderWindow
 
Et le compilo me sort 19 erreurs comme ça:
C:\Users\william\Projets\C++\newQt\Projects\dofus\Code\build-teal_v0-1-Desktop_Qt_5_2_1_MinGW_32bit-Debug\debug\main.o:-1: In function `Z5qMainiPPc':
C:\Users\william\Projets\C++\newQt\Projects\dofus\Code\teal_v0-1\main.cpp:15: erreur : undefined reference to `sf::Window::close()'
C:\Users\william\Projets\C++\newQt\Projects\dofus\Code\teal_v0-1\main.cpp:12: erreur : undefined reference to `sf::Window::pollEvent(sf::Event&)'
C:\Users\william\Projets\C++\newQt\Projects\dofus\Code\teal_v0-1\main.cpp:18: erreur : undefined reference to `sf::Color::Color(unsigned char, unsigned char, unsigned char, unsigned char)'
C:\Users\william\Projets\C++\newQt\Projects\dofus\Code\teal_v0-1\main.cpp:18: erreur : undefined reference to `sf::RenderTarget::clear(sf::Color const&)'
etc...
C:\Users\william\Projets\C++\newQt\Projects\dofus\Code\build-teal_v0-1-Desktop_Qt_5_2_1_MinGW_32bit-Debug\debug\teal_connex.o:-1: In function `ZN4TealC2Ev':
C:\Users\william\Projets\C++\newQt\Projects\dofus\Code\teal_v0-1\teal_connex.cpp:5: erreur : undefined reference to `sf::String::String(char const*, std::locale const&)'
C:\Users\william\Projets\C++\newQt\Projects\dofus\Code\teal_v0-1\teal_connex.cpp:5: erreur : undefined reference to `sf::VideoMode::VideoMode(unsigned int, unsigned int, unsigned int)'
C:\Users\william\Projets\C++\newQt\Projects\dofus\Code\teal_v0-1\teal_connex.cpp:5: erreur : undefined reference to `sf::RenderWindow::RenderWindow(sf::VideoMode, sf::String const&, unsigned int, sf::ContextSettings const&)'
C:\Users\william\Projets\C++\newQt\Projects\dofus\Code\teal_v0-1\teal_connex.cpp:5: erreur : undefined reference to `sf::RenderWindow::~RenderWindow()'
etc etc etc...
What's the problem ? o_o'
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Février 26, 2015, 08:58:20 am
Tes lignes "LIBS +=" étaient correctes la première fois, là t'as fait n'importe quoi en les réécrivant ;)
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 26, 2015, 09:04:06 am
Ah ? J'en suis pas si sûr...
(mon nouveau .pro)
TEMPLATE = app
QT = sql widgets
TARGET = Teal

SOURCES += \
    main.cpp \
    teal_connex.cpp \
    hl_sha1wrapper.cpp \
    hl_sha1.cpp

HEADERS += \
    teal_connex.h \
    hl_sha1wrapper.h \
    hl_sha1.h \
    hl_hashwrapper.h \
    hl_types.h

# Oui, oui, j'ai bien fait qmake + clean. pour le make je vois pas
# du tout ou c'est, mais ça doit pas être très important...

DEFINES += SFML_STATIC

INCLUDEPATH += C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/include
DEPENDPATH += C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/include

##########################################################################
win32:CONFIG(debug, debug|release): LIBS += \                            #
-L"C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/" -lsfml-graphics-s-d -lsfml-window-s-d -lsfml-system-s-d
##########################################################################
else:win32:CONFIG(release, debug|release): LIBS += \                     #
-L"C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/" -lsfml-graphics-s -lsfml-window-s -lsfml-system-s
##########################################################################
 
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Février 26, 2015, 09:08:57 am
Voilà, maintenant c'est correct (note que tu pourrais éviter de répéter -L"C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/" en le sortant de la condition).

Toujours exactement les mêmes erreurs que précédemment ?

PS : t'as vraiment mis SFML dans le répertoire mingw48_32/include ? c'est moche :-\
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 26, 2015, 09:10:56 am
Oui toujours les mêmes erreurs.
Enfin j'en ai d'autres en fait.
D:\sfml-release\_Sources\SFML\src\SFML\Graphics\RenderTarget.cpp:312: erreur : undefined reference to `glMatrixMode@4'
D:\sfml-release\_Sources\SFML\src\SFML\Graphics\RenderTarget.cpp:332: erreur : undefined reference to `glPopMatrix@0'
etc...
(j'en ai 180 comme ça x_x)
Ah, WAIT, d'où il me sort D:\sfml-release ? J'ai pas de dossier sfml-release dans mon disque dur D:

Et oui, j'ai vraiment mis ça dans mingw/include, comme ça, pas besoin de me casser la tête pour les headers, j'ai juste à faire <SFML/truc.h>
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Février 26, 2015, 09:17:02 am
Ce ne sont pas les mêmes erreurs en effet, et c'est très important : là ce que tu as oublié c'est qu'en mode statique, tu dois aussi lier toi-même toutes les dépendances de SFML (cf. le tutoriel de démarrage).

Citer
Et oui, j'ai vraiment mis ça dans mingw/include, comme ça, pas besoin de me casser la tête pour les headers, j'ai juste à faire <SFML/truc.h>
Ah bon ::)
INCLUDEPATH += C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/include
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 26, 2015, 09:27:36 am
Lier aussi toutes les dépendances ? Arf... Keduboolo.
Et heu... alors commençons par les dépendances de system. où est winmm.a ? j'ai regardé dans lib et bin o.o'
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Février 26, 2015, 09:57:05 am
Toutes les dépendances citées sont soit des bibliothèques système (elles sont dans ton compilo), soit fournies avec SFML.

Citer
Lier aussi toutes les dépendances ? Arf... Keduboolo.
Les bibliothèques statiques n'ont pas que des avantages ;)
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 26, 2015, 10:04:31 am
Dans mon compilo ? Vraiment ? Jeansuipassisur... J'ai regardé :
5.2.1\mingw48_32\bin
5.2.1\mingw48_32\lib
et
Tools\mingw48_32\bin
Tools\mingw48_32\lib
Y'a pas winmm.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 26, 2015, 10:26:38 am
Bon, J'en ai marre, je ferai avec les dlls.
Mais, c'est aussi simple que ça ? Copier-coller les dlls dans le répertoire de l'éxécutable et hop, ça marche ?
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Février 26, 2015, 11:24:50 am
mingw482_32\i686-w64-mingw32\lib\libwinmm.a (c'est quand même pas compliqué de faire une recherche de fichier avec ton OS).

Mais pourquoi diable cherches-tu le fichier ? Mets juste "-lwinmm" dans ton projet et laisse le truc marcher tout seul.

Ensuite oui, pour le lien dynamique il faut juste que les DLLs soient à côté de l'exécutable (ou dans un chemin référencé dans la variable d'environnement PATH).
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 26, 2015, 11:53:33 am
Nouvelle erreur, mais ça a avancé, c'est déjà ça !
Alors mon erreur est: 0x0000139. (Avant c'était 135)
J'ai copié toutes les DLLs dans les répertoires debug et release de mon projet (j'ai mis les dlls release et debug dans chaque répertoire, sans faire la différence avec les d à la fin ou non.)
Et... heu... bah voilà mon nouveau .pro ^^' (on peut pas dire qu'il a vraiment changé...)
TEMPLATE = app
QT = sql widgets
TARGET = Teal

SOURCES += \
    main.cpp \
    teal_connex.cpp \
    hl_sha1wrapper.cpp \
    hl_sha1.cpp

HEADERS += \
    teal_connex.h \
    hl_sha1wrapper.h \
    hl_sha1.h \
    hl_hashwrapper.h \
    hl_types.h

##########################################################################
win32:CONFIG(debug, debug|release): LIBS += \                            #
-L"C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/" -lsfml-graphics-d -lsfml-window-d -lsfml-system-d
##########################################################################
else:win32:CONFIG(release, debug|release): LIBS += \                     #
-L"C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/lib/" -lsfml-graphics -lsfml-window -lsfml-system
##########################################################################

INCLUDEPATH += C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/include
DEPENDPATH += C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/include
 
What's the problem ?(tiens elle est cool celle balise)
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Février 26, 2015, 11:55:39 am
Citer
J'ai copié toutes les DLLs dans les répertoires debug et release de mon projet
C'est là que se trouve ton exécutable ?
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 26, 2015, 11:57:31 am
*va voir le répertoire debug pour voir si l'exécutable y est encore*
Heu oui oui, il est bien là mon exécutable.
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Février 26, 2015, 12:01:53 pm
Ce serait bien d'avoir un message d'erreur un peu plus instructif qu'un chiffre. Tu n'as rien d'autre dans ton log d'exécution ou via le debugger ?
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 26, 2015, 12:30:13 pm
Tu veux tout savoir ? Eh bah tu va tout savoir.
Quand j'exécute:
Démarrage de C:\Users\william\Projets\C++\...\build-teal_v0-1-Desktop_Qt_5_2_1_MinGW_32bit-Debug\debug\Teal.exe...
Le programme s'est terminé subitement.
C:\Users\william\Projets\C++\...\build-teal_v0-1-Desktop_Qt_5_2_1_MinGW_32bit-Debug\debug\Teal.exe a planté
Quand je debug:
(popup)During startup program exited with code 0x0000139.
et dans la console: Début du débogage
Le débogage est fini
Hum hum ? Je vois pas ce que tu peux faire avec tout ça...

EDIT: ah et, si tu veux le truc sortie de compilo:
12:29:52: Exécution des étapes pour le projet teal_v0-1...
12:29:52: Configuration inchangée, étape qmake sautée.
12:29:52: Débute : "C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\mingw32-make.exe"
C:/Qt/Qt5.2.1/Tools/mingw48_32/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'C:/Users/william/Projets/C++/.../build-teal_v0-1-Desktop_Qt_5_2_1_MinGW_32bit-Debug'
mingw32-make[1]: Nothing to be done for 'first'.
mingw32-make[1]: Leaving directory 'C:/Users/william/Projets/C++/.../build-teal_v0-1-Desktop_Qt_5_2_1_MinGW_32bit-Debug'
12:29:56: Le processus "C:\Qt\Qt5.2.1\Tools\mingw48_32\bin\mingw32-make.exe" s'est terminé normalement.
12:29:56: Temps écoulé : 00:04.
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Février 26, 2015, 12:36:39 pm
Fais voir une capture d'écran de ce qu'il y a dans le répertoire C:\Users\william\Projets\C++\...\build-teal_v0-1-Desktop_Qt_5_2_1_MinGW_32bit-Debug\debug\ ?
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 26, 2015, 01:50:51 pm
(http://zupimages.net/up/15/09/vzds.png)
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 28, 2015, 09:36:44 am
Bon, et donc, je fais quoi ?
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Février 28, 2015, 10:32:11 am
J'en sais rien. Il y a trop peu d'informations pour pouvoir t'aider. Il faudrait que tu fasses un peu de recherche sur ton IDE et ton debugger, je ne peux pas croire qu'ils ne soient pas capables de te donner une information plus précise que ça.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Février 28, 2015, 05:13:37 pm
Moi je crois bien.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 01, 2015, 06:13:16 pm
Bon, ça's trouve c'est à cause de ma version de GCC. enfin bizarre...
Qt utilise le compilateur MinGW, mais j'ai aussi des répertoires et des libs avec gcc dedans. Et y'a un répertoire dans un autre répertoire GCC qui s'apelle 4.8.0. Et quand je vois les versions de téléchargements, y'a GCC 4.9.2 MinGW dw2, que j'ai téléchargé (j'ai gcc 4.8.0 et mingw dw2 apparemment) et GCC 4.8.0 sans MinGW.
Bon je télécharge quoi alors ?
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Mars 01, 2015, 06:20:45 pm
La première chose à faire est de se renseigner sur ce que signifient exactement MinGW, gcc, DW2, etc. C'est déjà pas facile de s'y retrouver entre les différentes variantes qui existent sous Windows, alors si tu t'y aventures sans savoir de quoi tu parles, ça va être compliqué.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 01, 2015, 06:44:26 pm
Se renseigner, se renseigner, se renseigner...
Que de la théorie. A quand la pratique ?
Alors je télécharge quoi ?
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Mars 01, 2015, 09:13:42 pm
Ce qui correspond à ton compilateur.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 02, 2015, 08:53:51 am
Chelou.
Enfin bref, j'ai téléchargé sfml gcc 4.8.1 32bits, je met les dlls dans le bin mingw, pas dans le répertoire de projet, et j'ai l'erreur 0xc0000135.
J'ai téléchargé sfml gcc 4.9.2 mingw dw 32bits, je met les dlls dans le bin mingw(en enlevant les anciennes), pas dans le répertoire de projet, et j'ai l'erreur 0xc0000139.
Sérieusement... je fais quoi moi ?
Btw: Voici mon .pro (j'ai fait un nouveau projet rien que pour sfml)
TEMPLATE = app

SOURCES += \
    main.cpp

DEFINES += SFML_DYNAMIC

LIBS = -LC:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/SFML-2.2/lib

win32:CONFIG(debug, debug|release): LIBS += -lsfml-graphics-d -lsfml-main-d -lsfml-window-d -lsfml-system-d
win32:CONFIG(release, debug|release): LIBS += -lsfml-graphics -lsfml-main -lsfml-window -lsfml-system

INCLUDEPATH += C:/Qt/Qt5.2.1/5.2.1/mingw48_32/include/SFML/SFML-2.2/include
 
Et mon .cpp:
#include <SFML/Graphics.hpp>

int main(int argc, char *argv[])
{
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    sf::CircleShape shape(100.f);
    shape.setFillColor(sf::Color::Green);

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

        window.clear();
        window.draw(shape);
        window.display();
    }

    return 0;
}
 
Qu'est ce qu'y a de pas bon ?
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Mars 02, 2015, 11:11:30 am
Déjà, ça ne vient pas de ton code. Ensuite ça ne vient plus de ton .pro, maintenant il est correct (note que SFML_DYNAMIC ne sert à rien).

Exécute un "gcc -v" et montre moi le résultat.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 02, 2015, 12:48:03 pm
(je précise qu'il n'y a rien dans le répertoire de mon exécutable, toutes les dlls sont dans le bin de 5.2.1/mingw)
Heu, gcc -v ? Comment je fais ça ? o.o' à la sortie de l'application ou de compilation ? Ou bien dans la console QML/JS ?
(ouai, j'ai pas l'habitude de l'invite de commandes...)
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Mars 02, 2015, 12:51:08 pm
Tu ouvres une console, tu vas dans le répertoire "bin" de ton compilateur (assure-toi que c'est bien le bon hein), et tu tapes la commande.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 02, 2015, 12:59:34 pm
Le bon ? Lequel ? Celui de 5.2.1\mingw ou Tools\mingw ? *erf*
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 02, 2015, 01:00:44 pm
(précision: dans le tools\mingw, y'a des dossiers qui ne sont pas en 5.2.1\mingw: libexec, etc, et i64884_truc)
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Mars 02, 2015, 01:37:48 pm
Si tu ne sais même pas quel compilateur tu utilises, tu as déjà un gros problème... :P

Mais "5.2.1\mingw" c'est une version de Qt non, pas un compilateur ?
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 02, 2015, 03:27:00 pm
Ouai je sais, y'a 5.2.1\mingw\bin et tools\mingw\bin...
Et mingw est un compilateur... enfin je crois '-'
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Mars 02, 2015, 04:25:13 pm
Pour ma part je ne sais pas comment t'aider plus que ça. Tu es visiblement perdu dans ton propre environnement de travail, partant de là il n'y a que toi qui peut t'aider à résoudre le problème d'environnement auquel tu es confronté. Moi je ne peux pas te guider dans quelque chose qui t'es aussi étranger. Met tes idées au clair, identifie clairement tes outils et leurs emplacements, et ensuite on verra si on peut avancer. Sinon on va y passer 3 mois.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 02, 2015, 04:32:09 pm
C'est bon, j'ai trouvé, fallait le faire dans tools.
Et quand je fais gcc -v il me met plein de trucs chelous de 3 pages...  ???
Titre: Re : Re : Erreur 0xc0000135
Posté par: G. le Mars 02, 2015, 05:36:27 pm
Et quand je fais gcc -v il me met plein de trucs chelous de 3 pages...  ???
Exécute un "gcc -v" et montre moi le résultat.
C'est long quand même cette histoire, y'en a qui risquent de perdre patience. :p
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 02, 2015, 05:44:03 pm
(http://zupimages.net/up/15/10/mgmn.png)

Gurps... (j'ai pris que la fin, je dois aussi prendre le début ? x_x)
Titre: Re : Erreur 0xc0000135
Posté par: victorlevasseur le Mars 02, 2015, 09:18:44 pm
Il semblerait que tu aies besoin de SFML pour mingw 4.8.0 (ou 4.8.1 peu importe pour le dernier numéro de version) DW2 (et pas SJLJ). Or, cette version ne semble pas disponible sur le site, il faut donc que tu compiles SFML toi-même.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 03, 2015, 06:09:44 pm
Comme par hasard...
D'accord,  merci de l'aide  :)
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 03, 2015, 06:22:09 pm
Heuuu...
Citer
Citation: Compiler SFML 2.2 avec CMake:
Voici les toutes premières étapes à effectuer :

Indiquez à CMake où se trouve le code source de SFML (ce doit être la racine de la hiérarchie SFML, là où se trouve le premier fichier CMakeLists.txt).
Choisissez où vous voulez générer les projets/makefiles (si le répertoire n'existe pas, CMake le créera).
Cliquez sur le bouton "Configure".

« ce doit être la racine de la hiérarchie SFML, là où se trouve le premier fichier CMakeLists.txt »
J'ai pas ce fichier texte à la racine de SFML...
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Mars 03, 2015, 06:59:25 pm
C'est quoi le rapport ? On n'est pas en train de chercher à compiler SFML là...
Titre: Re : Erreur 0xc0000135
Posté par: victorlevasseur le Mars 03, 2015, 07:37:17 pm
Citer
C'est quoi le rapport ? On n'est pas en train de chercher à compiler SFML là...
Si, parce qu'il n'y a pas de binaires pour GCC 4.8 DW2.

Citer
« ce doit être la racine de la hiérarchie SFML, là où se trouve le premier fichier CMakeLists.txt »
J'ai pas ce fichier texte à la racine de SFML...
Télécharger les sources de SFML depuis la page de téléchargement : http://www.sfml-dev.org/files/SFML-2.2-sources.zip
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Mars 03, 2015, 07:55:51 pm
Ah, sorry j'avais loupé un message en cours de route.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 04, 2015, 02:55:37 pm
d'accord, je vais télécharger.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 04, 2015, 06:11:55 pm
Oh super... un autre problème --'
C:/Qt/Qt5.2.1/Tools/mingw_48_32/bin> cmake-gui
Voilà ce que je fait dans l'invite de commandes.
'cmake-gui n'est pas reconnu en tant que programme... blablabla...'
Euh, j'ai bien mingw\bin dans ma variable path. (sinon j'aurais pas pu faire gcc -v)
Et, quand je regarde le répertoire bin, je vois:
Ni cmake
Ni cmake-gui.
Euh...
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Mars 04, 2015, 06:15:55 pm
L'exécutable cmake-gui fait partie de CMake, pas de Qt ni MinGW.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 04, 2015, 07:15:12 pm
Et euh... où je trouve CMake moi ?
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Mars 04, 2015, 08:36:55 pm
Il y a le lien dans le tutoriel. Et sans trop me mouiller, je pense que Google peut également te l'indiquer.

Cette discussion traîne beaucoup trop en longueur. Essaye de te débrouiller un minimum tout seul avec les ressources existantes et un peu de recherche personnelle. Si tu ne te sens pas capable de faire ça, alors peut-être devrais-tu commencer par des choses moins compliquées, n'impliquant pas l'utilisation d'une bibliothèque tierce.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 05, 2015, 06:15:03 pm
Eh bah... si.
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 07, 2015, 04:05:09 pm
J'ai compilé SFML avec CMake.
Et... j'ai les .dlls et les .a mais où sont les headers ?
Titre: Re : Erreur 0xc0000135
Posté par: G. le Mars 07, 2015, 04:17:30 pm
Quelque part dans un dossier /include
Titre: Re : Erreur 0xc0000135
Posté par: S66 le Mars 07, 2015, 05:26:03 pm
Super... et quand j'ai (presque) tout fini et que je teste mon code...

C:\Users\..............\test-sfml\main.cpp:18: erreur : 'class sf::Window' has no member named 'clear'
         window.clear();
                ^
Euh, sf::window est pas censé avoir ce membre "clear" ?

Par contre, si j'enlève clear...

YEAH ! ÇA MARCHE ! ENFIN ! TOUT CELA N'AURA PAS ÉTÉ VAIN !  :D :D :D
Mais j'ai toujours pas clear();  :-\
Titre: Re : Erreur 0xc0000135
Posté par: Laurent le Mars 07, 2015, 07:06:07 pm
Citer
Euh, sf::window est pas censé avoir ce membre "clear" ?
C'est quand même pas compliqué à vérifier avec la documentation de l'API. Si tu persistes à ne pas vouloir bouger tes fesses un minimum tu vas commencer à avoir des problèmes sur ce forum. Il y a des milliers d'autres utilisateurs qui ont besoin d'aide, tu ne peux pas monopoliser l'attention pour des questions qui trouvent leur réponse très simplement sur Google ou dans la documentation disponible.
Titre: Re : Erreur 0xc0000135
Posté par: Cpl.Bator le Mars 08, 2015, 01:58:48 am
Citer
Euh, sf::window est pas censé avoir ce membre "clear" ?
http://www.sfml-dev.org/documentation/2.1-fr/classsf_1_1Window.php (http://www.sfml-dev.org/documentation/2.1-fr/classsf_1_1Window.php)

Tu as des origines Tibétaine Laurent ? ou le féminin de ton prénom , c'est Patience ?  :)