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

XML Discussion :

[libxml2] crash de la fonction xmlParseFile sur windows


Sujet :

XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 62
    Points : 35
    Points
    35
    Par défaut [libxml2] crash de la fonction xmlParseFile sur windows
    bonjour,
    je voulais savoir pourquoi la fonction xmlParseFile de la libxml2 crashe sous windows.
    elle marche bien sous linux mais vu que je dois faire le programme pour les 2 os je dois resoudre mon probleme avant de continuer.
    voila merci.
    ps: j'ai trouvé sur un google un message qui date de 2004 d'une personne qui a le meme probleme mais la solution presenté marche pas chez moi.
    merci d'avanve

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    je ne sais pas, mais souvent ce genre de pb vient des chemin vers le fichier....pb du "/" et "\" different ds LUX et win.

    est ce que ds le chemin vers ton fichier ya des "slash"?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    voila le chemin que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char* docname="C:\\Documents and Settings\\dev\\Bureau\\GtkProjet\\Test\\story.xml";

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    ok,

    est ce que tu peux mettre ton fichier à l'endroit où tu travail et de remplacer ton chemin par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char* docname="story.xml";
    ?

    et tester sous win et sous linux. c juste pour voir si le pb vient de là ou pas...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    oui je l'ai deja essayer et ca marche pas.
    je l'ai compilé sous linux et ca marche tres bien.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    est ce que quelqu'un de vous pourrais installer la libxm2 et tester si ca marche.
    merci
    ++

  7. #7
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Si j'étais toi, j'essairai de trouver un debuggeur..
    Maintenant c'est systematique chez moi, je lance le debugger pour voir où ça plante

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    je debuggues la libxml ? parce que le probleme vient de cette fonction xmlParseFile.
    est ce que t'as un tuto sur le debuguage parce que j'ai jamai debuggué
    pour mes programmes je mets des printf ... pour voir ou ca stope à part ca ...
    ++

  9. #9
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Nan mais ya ptet un depassement avant, ou un free en trop qui fait que la libxml foire.. probleme qui se presente sur la machine A et pas sur la machine B.. c'est assez typique !

    Je connais pas de debuggeur sous windows (a part celui de vc++), sinon j'utilise gdb.. peut être que mingw de devcpp contient un gdb version windows..

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    ah non non
    le pobleme vient de cette fonction.
    parce que meme l'exemple de la libxml2 marche pas.
    et j'ai deja trouvé un message d'un gars qui a le meme probleme.
    c'est pour ca que j'ai demandé que quelqu'un l'installe.
    ++

  11. #11
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Ah bon, désolé
    Hm, l'xml que tu es en train de parser est en quel encodage?

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    utf-8
    tu peux pas essayer de l'installer et le tester stp ?

  13. #13
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Hm, bein c'est le joyeux boxon pour utiliser libxml sur windows.. D'ailleurs ce n'est pas trop prévu pour ça, visiblement c'est un gars qu'a fait le portage tout seul ( http://www.zlatkovic.com/libxml.en.html ), ça me donne pas trop confiance.

    J'ai jamais utilisé de librarie statique ou dynamique sous windows, chais pas trop comment ça marche
    Là je viens de faire un essai juste avec iconv (car libxml a besoin d'iconv) dans un projet VC++... J'ai copié le .h et la libraire statique (le .lib qui fait 1Mo), j'ai inclut le .lib dans le projet.

    Ca compile mais ya une erreur a l'execution "MSVCR80.dll" introuvable.. Une faute de frappe de la part de celui qui a porté iconv? (je crois que c'est msvcrT)

    Si iconv ne marche pas, libxml ne marchera pas.

    Maintenant ton pb, c'est peut etre encore autre chose

  14. #14
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    J'ai rien dit, ça marche (enfin ça plante pas) en enlevant kernel32.lib et en rajoutant msvcrt.lib.
    Stay tuned

  15. #15
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Bon bein j'arrive pas a linker le tout... A taton j'essayais de trouver les lib manquantes mais y manque un truc..

    Avec ces .lib

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    kernel32.lib
    msvcrt.lib
    iconv_a.lib
    zlib.lib
    libxml2_a.lib
    wsock32.lib
    .. et en ignorant les librairies standard (/NODEFAULTLIB)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    libxml2_a.lib(catalog.obj) : error LNK2019: unresolved external symbol __imp__close referenced in function _xmlLoadFileContent
    libxml2_a.lib(xmlIO.obj) : error LNK2001: unresolved external symbol __imp__close
    libxml2_a.lib(nanohttp.obj) : error LNK2001: unresolved external symbol __imp__close
    libxml2_a.lib(catalog.obj) : error LNK2019: unresolved external symbol __imp__read referenced in function _xmlLoadFileContent
    libxml2_a.lib(xmlIO.obj) : error LNK2001: unresolved external symbol __imp__read
    libxml2_a.lib(catalog.obj) : error LNK2019: unresolved external symbol __imp__open referenced in function _xmlLoadFileContent
    libxml2_a.lib(nanohttp.obj) : error LNK2001: unresolved external symbol __imp__open
    libxml2_a.lib(catalog.obj) : error LNK2019: unresolved external symbol __imp__stat referenced in function _xmlLoadFileContent
    libxml2_a.lib(xmlIO.obj) : error LNK2001: unresolved external symbol __imp__stat
    libxml2_a.lib(xmlIO.obj) : error LNK2019: unresolved external symbol __imp__write referenced in function _xmlFdWrite
    libxml2_a.lib(nanohttp.obj) : error LNK2001: unresolved external symbol __imp__write
    libxml2_a.lib(xmlIO.obj) : error LNK2019: unresolved external symbol __imp__dup referenced in function _xmlGzfileOpen_real
    libxml2_a.lib(xmlIO.obj) : error LNK2019: unresolved external symbol __imp__getcwd referenced in function _xmlParserGetDirectory
    Sinon, si j'ignore pas les librairies standard, ça compile, mais ça plante car il trouve pas msvcr80.dll

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    j'utilise dev c++ je telcharges le devpack sur devpaks.org ca secompile et s'execute mais ca plante
    bon j'ai pas le choix je vais utiliser une autre bibliotheque.
    tu connais pas par hasard une en C et facile d'utilisation ?
    merci ++

  17. #17
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    J'ai jamais essayé, mais ceci a l'air sympa (et bien plus leger que libxml)

    http://expat.sourceforge.net/

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    merci
    j'ai vu que expat utilise des evenements pour traiter un fichier xml contrairement à la libxml, j'ai un peu de mal à trouver comment faire:
    fonction appellé lors d'une balise ouvrante.
    fonction appellé lors d'une balise fermante.
    et une lorsqu'il trouve des données textuelles .


    je vois pas tres bien comment faire sachant que j'ai ce genre de fichier.
    et je dois charger ces données dans une liste chainée.
    les fonction prennent un argument void *data pour mettre les données ma liste chainée dans mon cas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <document>
    <avis>
    <auteur> </auteur>
    <date>  </date>
    <texte> </texte>
    </avis>
     
    <avis>
    <auteur> </auteur>
    <date>  </date>
    <texte> </texte>
    </avis>
    </document>
    voila merci d'avance

  19. #19
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par .:dev:.
    merci
    j'ai vu que expat utilise des evenements pour traiter un fichier xml contrairement à la libxml, j'ai un peu de mal à trouver comment faire:
    fonction appellé lors d'une balise ouvrante.
    fonction appellé lors d'une balise fermante.
    et une lorsqu'il trouve des données textuelles .
    cf .http://www.developpez.net/forums/sho...6&postcount=11 pour le principe de base

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    j'ai compris + ou - merci
    je pourrais utiliser aussi la profondeur. en plus de l'etat.
    par exemple pour chaque appel à une balise ouvrante j'incremente la profondeur de 1 si elle est fermé je decremente.
    mon probleme c'est ou je vais mettre ces 2 variables sachant que ma liste chainée sera dans l'argument (void *data).
    les declarer en globals ? c'est la meilleur solution ?
    ++

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/10/2009, 11h25
  2. Fonction RSA_print_fp crash sur Windows
    Par bkadoum dans le forum C
    Réponses: 3
    Dernier message: 29/01/2009, 11h58
  3. Réponses: 1
    Dernier message: 06/06/2007, 18h20
  4. Probleme avec IFRAME et fonction sur window.parent
    Par FadeOut dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/10/2006, 09h31
  5. configurer la fonction mail sur apache (windows)
    Par sensoo dans le forum Apache
    Réponses: 4
    Dernier message: 12/04/2006, 14h26

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