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

C++ Discussion :

C + + builder Parrseur de fichier XML: [Error ILINK32] unreselved externe


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 14
    Points
    14
    Par défaut C + + builder Parrseur de fichier XML: [Error ILINK32] unreselved externe
    Je suis en train de développer une dll en C + + Builder XE , et j'ai besoin de "Parser" un fichier XML et pour cela je utiliser le parsseur de C + + Builder XE ** qui génère un code qui me permet de manipuler les fichiers de XML.
    Le problème est j'ai eu des erreurs à la compilation causée par le code généré.
    voici à quoi ressemble un (bout) code généré:

    _di_IXMLDevlinkAbstractionLayer __fastcall GetDevlinkAbstractionLayer(_di_IXMLDocument Doc)
    {
    return (_di_IXMLDevlinkAbstractionLayer) Doc->GetDocBinding("DevlinkAbstractionLayer", __classid(TXMLDevlinkAbstractionLayer), TargetNamespace);
    };

    _di_IXMLDevlinkAbstractionLayer __fastcall GetDevlinkAbstractionLayer(TXMLDocument *Doc)
    {
    _di_IXMLDocument DocIntf;
    Doc->GetInterface(DocIntf);
    return GetDevlinkAbstractionLayer(DocIntf);
    };

    _di_IXMLDevlinkAbstractionLayer __fastcall LoadDevlinkAbstractionLayer(const UnicodeString& FileName)
    {
    return (_di_IXMLDevlinkAbstractionLayer) LoadXMLDocument(FileName)->GetDocBinding("DevlinkAbstractionLayer", __classid(TXMLDevlinkAbstractionLayer), TargetNamespace);
    };
    j'obtiens les erreurs suivantes:

    [ILINK32 Error] Error: Unresolved external '__fastcall System::TObject::GetInterface(_GUID&, void *)' referenced from D:\DOCUMENTS AND SETTINGS\SESA269906\DESKTOP\DEV\DEVLINKABSTRACTION\DEBUG\WIN32\COOLINGCONFIGDALDLL.OBJ
    [ILINK32 Error] Error: Unresolved external '__fastcall Strhlpr::UnicodeFree(System::UnicodeString&)' referenced from C:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\8.0\LIB\WIN32\DEBUG\VCLE.LIB|ustring

    ...

    [ILINK32 Error] Error: Unresolved external '__fastcall Strhlpr::WideFree(System::WideString&)' referenced from C:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\8.0\LIB\WIN32\DEBUG\VCLE.LIB|wstring
    [ILINK32 Error] Error: Unresolved external '__fastcall Strhlpr::WideAssign(System::WideString&, System::WideString&)' referenced from C:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\8.0\LIB\WIN32\DEBUG\VCLE.LIB|wstring
    Je pense que l'erreur est le comprennent <vcl.h> dans un fichier généré provoque le problème.
    quelqu'un a une idée?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Ce type d'erreur provient en général plus probablement de librairies non trouvées par le linker que de problèmes de header.
    Le générateur de code doit être documenté, que dit la documentation au sujet des dépendances du code généré?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Je pense que j'ai mis tous les paths correctement ( j'ai pas ce problème avec d'autre projet).
    J'ai regénéré une autre dll pour mieux comprendre la problème en utilisant les vcl lors de la création de la dll ("use vcl").
    le problème disparaît, mais là j'ai un autre problème, lorsque j'utilise la dll dans une application de test j'ai une violation d'accès à une adresse mémoire:
    "Access violation at 0xXXXXXXXX. read of address 0xXXXXXXXX. Process Stoped. Use Step or run to continue."
    cette erreur intervient à la fin lorsque je clique sur fermé.
    j'ai bien vérifier le code (qui est trop grand) je ne trouve pas fuite.
    Cette erreur disparaît lorsque je supprime TRichedit de mon appli de test.
    Merci de ton aide.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    j'ai décoché les options:
    In the project options, uncheck the linker option "Dynamic RTL".
    In the packages options, uncheck "Link with runtime packages".
    Que je pense n'avaient rien à voir avec mon problème ( le deuxiéme ) .
    Mais le problème n'est plus là.
    Si tu as une idée pourquoi le fait de décrocher ces deux options a fait disparaître la violation d'accès, ça serait un plus, sinon merci pour ton aide.

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

Discussions similaires

  1. C++ Builder 5 : Creation de fichiers XML
    Par bfespi69 dans le forum C++Builder
    Réponses: 8
    Dernier message: 03/05/2011, 10h05
  2. [C++ builder 6]Problème de lecture de fichier XML
    Par getz85 dans le forum C++Builder
    Réponses: 8
    Dernier message: 27/03/2009, 17h56
  3. Creation de fichier XML avec XML Builder
    Par Nicolas57 dans le forum Ruby
    Réponses: 1
    Dernier message: 10/07/2007, 09h21
  4. [DTD] Valider fichier xml avec une DTD externe
    Par Tail dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 26/06/2006, 18h14
  5. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29

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