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

Ada Discussion :

[Gnat] Erreur d'importation avec dll chargée « manuellement » sous Windows 9X


Sujet :

Ada

  1. #1
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Points : 493
    Points
    493
    Par défaut [Gnat] Erreur d'importation avec dll chargée « manuellement » sous Windows 9X
    Bonjour,

    Une application Ada, utilise des fonctions d'une DLL qu'elle charge « manuellement ». Une application équivalente, en C, compilée avec GCC, fonctionne parfaitement bien. Sous Gnat elle compile bien, mais à l'execution, il survient un message du type suivante :

    Citation Envoyé par Boite de Message D'erreur
    Error while importing symbol 'PlaceholderSymbole' from DLL 'placeholder.dll'!
    The application will terminate now.
    La boite de dialogue a simplement pour titre « Fatal Error ». Le message étant en anglais, je suppose qu'il ne s'agit pas d'un message d'erreur émanant du système (mon windows étant francisé), même si l'origine de l'erreur peut bien sure être une erreur système. Je suppose que le message d'erreur vient de la DLL chargée manuellement (elle est prévue pour ça, et a donc put prévoir une telle forme de notification).

    Le problème est que la version équivalente en C, compilée avec GCC, fonctionne trés bien, alors que l'application sous sa forme Ada, compilé avec Gnat qui est basé sur GCC, ne fonctionne pas, et renvoie ce message d'erreur.

    Y at-il des choses particulières à savoir au sujet de l'utilisation de librairies chargées manuellement dans les applications Ada compilé avec Gnat ?

    Merci d'avance pour toutes informations quelquonques...
    ------------------------------------------------------------
    Sur le web, c'est la liberté qui est gratuite, mais bien évidement pas la consomation ... et encore moins la consomation à outrance
    ------------------------------------------------------------
    Language shapes the way we think, and determines what we can think about [ B. Lee Whorf ] ... mais ce n'est pas tout à fait vrai à 100%...
    ------------------------------------------------------------
    Pascal (FreePascal?) - Ada (Gnat-3.15p)
    XSLT (XSLTProc) - CGI binaires (Ada/C) [ Clavier Arabe ]
    ------------------------------------------------------------

  2. #2
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    677
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 677
    Points : 638
    Points
    638
    Par défaut
    n'est ce pas dû au fait que le gnat 3.15p est basé sur
    le gcc 2.8.1 ? trop ancien peut-être ?

    la dernière release mingw porte le gcc 3.4.2 et contient
    un compilateur ADA

    si vous avez déjà implémenté le compilateur C, il vous
    suffit d'installer

    http://prdownloads.sourceforge.net/m...40916-1.tar.gz

    au cas où bous auriez installé la release candidate 3.4.4 ou 3.4.5

    prenez

    http://prdownloads.sourceforge.net/m...50522-1.tar.gz
    http://prdownloads.sourceforge.net/m...60117-1.tar.gz
    -------------------
    attention, gnat 3.15p est validé, pas gcc-ada-3-4-x

  3. #3
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Points : 493
    Points
    493
    Par défaut
    Bonne idée HRS... mais... la lib en question fonctionne parfaitement avec le GCC sur lequel est basé Gnat (il s'agit du même GCC), et c'est le lieur qui vient avec GCC qui est ici concerné. J'ai trouvé la solution, mais la situation n'est vraiment pas clair, parce que j'ignore pourquoi les choses sont ainsi (peut-être la runtime de Gnat jout-elle un rôle dans ce phénomène). La lib qui fonctionne avec GCC ne fonctionne pas avec Gnat, mais il y en existe une autre qui fonctionne parfaitement avec Gnat (celle fournie par Microsoft, utilisable également avec VC++, VB, and the like ..)

    Ce problème de librairie est traité dans un autre topic, ici : Unicode sous Windows 9X/Me (voir le post #19)
    ------------------------------------------------------------
    Sur le web, c'est la liberté qui est gratuite, mais bien évidement pas la consomation ... et encore moins la consomation à outrance
    ------------------------------------------------------------
    Language shapes the way we think, and determines what we can think about [ B. Lee Whorf ] ... mais ce n'est pas tout à fait vrai à 100%...
    ------------------------------------------------------------
    Pascal (FreePascal?) - Ada (Gnat-3.15p)
    XSLT (XSLTProc) - CGI binaires (Ada/C) [ Clavier Arabe ]
    ------------------------------------------------------------

  4. #4
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Points : 493
    Points
    493
    Par défaut
    La question se posait à deux endroits différents : ici, pour être un problème de Gnat, et sur le forum developpement Windows, pour être un problème de mise en oeuvre de Unicows, une API Unicode pour Windows 9x/Me (la dll chargée manuellement était en effet unicows.dll, liée par libunicows.a).

    Pour info, je donne le lien vers cet autre thread : http://www.developpez.net/forums/sho...1&postcount=22

    Et je repost également ici le dernier post de cet autre thread, puisqu'il y est question d'un bug de Gnat.

    Je recite :

    J'ai repris aujourd'hui les tests concernant ce problème. J'ai trouvé d'où vient le problème, mais je ne le comprends pas.

    Dans ma petite application d'essai, il y avait des expressions du genre « S := Integer'Image(X); ». Ce sont ces expression Integer'Image qui pose problème. Je les ai enlevé, et tous fonctionne parfaitement. Je ne comprends vraiment pas comment une expression Integer'Image peut avoir une influance sur le chargement d'une DLL... c'est complétement loufoque ... apparement il y a un sérieux bug de Gnat avec Integer'Image (ça fait beaucoup de bugs pour Gnat je trouve, parce qu'il n'y a pas que celui-ci).

    Bon alors, quel est les problème avec Integer'Image sous Gnat ? Débordement de mémoire ? (ce serait la meilleur ça... Ada qui nous fais un truc pareil). Ou alors un phénomène paranormal ? (possible vu la bizarrerie).

    Voilà... s'il y en a qui on entendu parler de ce bug, ou qui l'on déjà renconter : des problèmes ou des bugs avec Integer'Image and the likes ?
    ------------------------------------------------------------
    Sur le web, c'est la liberté qui est gratuite, mais bien évidement pas la consomation ... et encore moins la consomation à outrance
    ------------------------------------------------------------
    Language shapes the way we think, and determines what we can think about [ B. Lee Whorf ] ... mais ce n'est pas tout à fait vrai à 100%...
    ------------------------------------------------------------
    Pascal (FreePascal?) - Ada (Gnat-3.15p)
    XSLT (XSLTProc) - CGI binaires (Ada/C) [ Clavier Arabe ]
    ------------------------------------------------------------

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

Discussions similaires

  1. Erreur de pool avec EJB3 et quartz sous JoNAS
    Par death_style dans le forum JOnAS
    Réponses: 4
    Dernier message: 12/12/2011, 07h53
  2. Erreur d'import avec NetBeans sur NetBeans 7.0
    Par L'aigle de Carthage dans le forum NetBeans
    Réponses: 0
    Dernier message: 23/05/2011, 14h13
  3. Problèmes de libération de Dll en delphi7 sous windows XP
    Par Tardiff Jean-François dans le forum Langage
    Réponses: 5
    Dernier message: 10/01/2006, 15h30
  4. LoadLibrary avec C++ Builder 6 sous Windows 2000
    Par tgempp dans le forum C++Builder
    Réponses: 15
    Dernier message: 13/11/2003, 19h19
  5. Problème avec le port série sous Windows XP
    Par didou2dek dans le forum Composants VCL
    Réponses: 6
    Dernier message: 02/09/2003, 19h50

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