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

Auteur Sujet: Erreur 0xc0000135  (Lu 21389 fois)

0 Membres et 1 Invité sur ce sujet

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Erreur 0xc0000135
« 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  :)
« Modifié: Février 24, 2015, 10:07:28 am par S66 »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Erreur 0xc0000135
« Réponse #1 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é.
Laurent Gomila - SFML developer

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Re : Erreur 0xc0000135
« Réponse #2 le: Février 24, 2015, 07:01:09 pm »
C'était donc ça ! Ah bin merci alors ^^

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Re : Erreur 0xc0000135
« Réponse #3 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'

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Erreur 0xc0000135
« Réponse #4 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 ;)
Laurent Gomila - SFML developer

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Re : Erreur 0xc0000135
« Réponse #5 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
##########################################################################
 

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Erreur 0xc0000135
« Réponse #6 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 :-\
Laurent Gomila - SFML developer

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Re : Erreur 0xc0000135
« Réponse #7 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>
« Modifié: Février 26, 2015, 09:12:50 am par S66 »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Erreur 0xc0000135
« Réponse #8 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
Laurent Gomila - SFML developer

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Re : Erreur 0xc0000135
« Réponse #9 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'

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Erreur 0xc0000135
« Réponse #10 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 ;)
Laurent Gomila - SFML developer

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Re : Erreur 0xc0000135
« Réponse #11 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.

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Re : Erreur 0xc0000135
« Réponse #12 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 ?
« Modifié: Février 26, 2015, 10:33:33 am par S66 »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Erreur 0xc0000135
« Réponse #13 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).
Laurent Gomila - SFML developer

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Re : Erreur 0xc0000135
« Réponse #14 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)