IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Erreur à l'exécution dans msvcr80.dll


Sujet :

Qt

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 43
    Points : 25
    Points
    25
    Par défaut Erreur à l'exécution dans msvcr80.dll
    Bonjour à tous,
    Voila je rencontre un problème lors de l'exécution de mon programme, erreur de type :
    Unhandled exception at 0x78147440 (msvcr80.dll) in visualisation_temps_reelle.exe: 0xC0000005: Access violation writing location 0x000007a0.
    Le débuggeur trouve cette erreur dans malloc.c
    Ce message d'erreur ce produit sur cette ligne :
    Qui est le dernière ligne de mon main(), son code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <QtGui/QApplication>
    #include "visualisation_temps_reelle.h"
     
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);
    	visualisation_temps_reelle w;
    	a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
    	return a.exec();
    }
    Voila à priori un pointeur mal initialisé, mais msvcr80.dll sert si j'ai bien compris au thread. Donc je me pose la question, est que cela peut venir de mon code de la classe que j'appelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    #include "visualisation_temps_reelle.h"
     
    visualisation_temps_reelle::visualisation_temps_reelle(QWidget *parent, Qt::WFlags flags)
    	: QMainWindow(parent, flags)
    {
    	ui.setupUi(this);
    	Dial = new dialogue();
    	page_visu = new page_visualisation1*;
    	control();
    }
    visualisation_temps_reelle::~visualisation_temps_reelle()
    {	
    	for(int i=0;i<compteur;i++)
    	{
    	delete page_visu[i];
    	}
    delete Dial;
    }
    void visualisation_temps_reelle::control()
    {
    //On se connecte au modèle messier
    Dial->connect_modele();
     
    //on lit les Id des variables a visualiser
    lecture_fichier();
     
    //On lance les visualisations
    	for(int i=0;i<ListeID.size();i++)
    	{
    	page_visu[i] = new page_visualisation1();
     
    	page_visu[i]->creation_page(page_visu[i],Dial,ListeID.at(i), nom_variable.at(i));
     
    	compteur=i;
    	}
    }
    void visualisation_temps_reelle::lecture_fichier()
    {
    //lit un fichier texte et initialise ListeID
    }
    }
    Sinon qu’elle pointeur est mal initialisé ? Je me pose une autre question, combien de Timer à t’on le droit d’initialiser, est que cela peut venir d’un Timer ? Bref si vous avez une piste pour faire fonctionner ce code cela m’arrangerait beaucoup.

    Merci d’avance.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Polux95
    Voila à priori un pointeur mal initialisé, mais msvcr80.dll sert si j'ai bien compris au thread.
    C'est le runtime C++ = le code de new/delete, cout/cin, etc... Remonte la pile des appels pour savoir qui a provoqué l'erreur dans ton code.
    http://loulou.developpez.com/tutorie...l-studio/#L3.2

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    Voila j'ai lu attentivement le tutoriel, et merci car c'est très utile, mais cela ne resout pas mon problème. J'ai toujours le même message d'erreur :
    Unhandled exception at 0x1023d53a (msvcr80d.dll) in visualisation_temps_reelle.exe: 0xC0000005: Access violation writing location 0x00000000.
    Comme dit précédemment j ai cherché la fonction appelante qui me créé l'erreur, donc ma pile est au moment du plantage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     	msvcr80d.dll!_memcpy()  + 0x5a bytes	
    >	QtGuid4.dll!QClipData::appendSpans(const QT_FT_Span_ * s=0x0012acf4, int num=21)  Line 268 + 0x20 bytes	C++
     	QtGuid4.dll!qt_span_clip(int count=21, const QT_FT_Span_ * spans=0x0012acf4, void * userData=0x0012b644)  Line 3533	C++
     	QtGuid4.dll!Draw_Sweep(TRaster_Instance_ * raster=0x00b261d8)  Line 2099 + 0x20 bytes	C
     	QtGuid4.dll!Render_Single_Pass(TRaster_Instance_ * raster=0x00b261d8, char flipped=0)  Line 2170 + 0x9 bytes	C
     	QtGuid4.dll!Render_Glyph(TRaster_Instance_ * raster=0x00b261d8)  Line 2202 + 0xb bytes	C
     	QtGuid4.dll!qt_ft_black_render(TRaster_Instance_ * raster=0x00b261d8, QT_FT_Raster_Params_ * params=0x0012b5b4)  Line 2301 + 0x9 bytes	C
     	QtGuid4.dll!QRasterPaintEnginePrivate::rasterize(QT_FT_Outline_ * outline=0x00b24e44, void (int, const QT_FT_Span_ *, void *)* callback=0x651a47b0, void * userData=0x0012b644, QRasterBuffer * rasterBuffer=0x00000000)  Line 2884 + 0x16 bytes	C++
     	QtGuid4.dll!QRasterPaintEnginePrivate::updateClip_helper(const QPainterPath & path={...}, Qt::ClipOperation op=ReplaceClip)  Line 2960	C++
     	QtGuid4.dll!QRasterPaintEngine::updateClipPath(const QPainterPath & path={...}, Qt::ClipOperation op=ReplaceClip)  Line 1246	C++
     	QtGuid4.dll!QRasterPaintEngine::updateClipRegion(const QRegion & r={...}, Qt::ClipOperation op=ReplaceClip)  Line 1217	C++
     	QtGuid4.dll!QRasterPaintEngine::updateState(const QPaintEngineState & state={...})  Line 1100 + 0x43 bytes	C++
     	QtGuid4.dll!QPainterPrivate::updateState(QPainterState * newState=0x016c7620)  Line 559	C++
     	QtGuid4.dll!QPainter::setClipRegion(const QRegion & r={...}, Qt::ClipOperation op=ReplaceClip)  Line 1914	C++
     	QtGuid4.dll!QMenuBar::paintEvent(QPaintEvent * e=0x0012c2a0)  Line 870	C++
     	QtGuid4.dll!QWidget::event(QEvent * event=0x0012c2a0)  Line 5828	C++
     	QtGuid4.dll!QMenuBar::event(QEvent * e=0x0012c2a0)  Line 1273	C++
     	QtGuid4.dll!QApplicationPrivate::notify_helper(QObject * receiver=0x00b34bf0, QEvent * e=0x0012c2a0)  Line 3432 + 0x11 bytes	C++
     	QtGuid4.dll!QApplication::notify(QObject * receiver=0x00b34bf0, QEvent * e=0x0012c2a0)  Line 3373 + 0x10 bytes	C++
     	QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject * receiver=0x00b34bf0, QEvent * event=0x0012c2a0)  Line 184 + 0x40 bytes	C++
     	QtGuid4.dll!qt_sendSpontaneousEvent(QObject * receiver=0x00b34bf0, QEvent * event=0x0012c2a0)  Line 1089 + 0xe bytes	C++
     	QtGuid4.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev=0x00b22be0, const QRegion & rgn={...}, const QPoint & offset={...}, int flags=4)  Line 756 + 0xd bytes	C++
     	QtGuid4.dll!QWidgetBackingStore::paintSiblingsRecursive(QPaintDevice * pdev=0x00b22be0, const QList<QObject *> & siblings={...}, int index=3, const QRegion & rgn={...}, const QPoint & offset={...}, int flags=4)  Line 680	C++
     	QtGuid4.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev=0x00b22be0, const QRegion & rgn={...}, const QPoint & offset={...}, int flags=5)  Line 786 + 0x2e bytes	C++
     	QtGuid4.dll!QWidgetBackingStore::cleanRegion(const QRegion & rgn={...}, QWidget * widget=0x00b28ed0, bool recursiveCopyToScreen=true)  Line 603	C++
     	QtGuid4.dll!qt_syncBackingStore(QRegion rgn={...}, QWidget * widget=0x00b28ed0, bool recursive=true)  Line 215	C++
     	QtGuid4.dll!QETWidget::translatePaintEvent(const tagMSG & msg={...})  Line 2956 + 0x2b bytes	C++
     	QtGuid4.dll!QtWndProc(HWND__ * hwnd=0x0006092e, unsigned int message=49661, unsigned int wParam=0, long lParam=0)  Line 1300 + 0xc bytes	C++
     	user32.dll!_InternalCallWinProc@20()  + 0x28 bytes	
     	user32.dll!_UserCallWinProcCheckWow@32()  + 0xb7 bytes	
     	user32.dll!_DispatchMessageWorker@8()  + 0xdc bytes	
     	user32.dll!_DispatchMessageW@4()  + 0xf bytes	
     	QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...})  Line 435 + 0x17 bytes	C++
     	QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...})  Line 928 + 0x15 bytes	C++
     	QtCored4.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...})  Line 125	C++
     	QtCored4.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...})  Line 170 + 0x2d bytes	C++
     	QtCored4.dll!QCoreApplication::exec()  Line 725 + 0x15 bytes	C++
     	QtGuid4.dll!QApplication::exec()  Line 2926	C++
     	visualisation_temps_reelle.exe!main(int argc=1, char * * argv=0x003f6948)  Line 9 + 0x6 bytes	C++
     	visualisation_temps_reelle.exe!WinMain(HINSTANCE__ * instance=0x00400000, HINSTANCE__ * prevInstance=0x00000000, char * __formal=0x00151f71, int cmdShow=1)  Line 103 + 0x12 bytes	C++
     	visualisation_temps_reelle.exe!__tmainCRTStartup()  Line 589 + 0x35 bytes	C
     	visualisation_temps_reelle.exe!WinMainCRTStartup()  Line 414	C
     	kernel32.dll!_BaseProcessStart@4()  + 0x23 bytes
    Et me renvoi toujours sur la même ligne de code de mon main :
    je comprend pas, je n'est pas d'autres fonctions en cour, donc cela viendrait de l'initialisation de mon application a?


    Encore merci, merci beaucoup

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    A priori, tu fais un truc dans ton constructeur qui fait planter Qt. Commence par tout commenter, puis décommenter petit a petit, jusqu'a isoler la ligne fautive...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    Voila le problème est corriger, mais j ai repris la moitié de mon code, je ne sais pas ou était l'erreur!!!
    MERCI beaucoup de votre aide et au moins maintenant je me sers mieux du debugger!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur à l'exécution dans l'Edi mais non en dehors.
    Par defluc dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/06/2007, 15h54
  2. [Etat]erreur d'exécution dans état
    Par modus57 dans le forum IHM
    Réponses: 8
    Dernier message: 12/04/2007, 22h35
  3. Erreur d'exécution dans un cas particulier
    Par danbern dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/02/2007, 17h16
  4. Localiser une erreur d'exécution dans une DLL
    Par papadrago dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/12/2006, 21h04
  5. Priorité d'exécution dans une dll
    Par Neilos dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/05/2005, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo