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

Langage Delphi Discussion :

Exception et DLL


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club Avatar de JakRenegade
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Etudiant en Informatique

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Points : 39
    Points
    39
    Par défaut Exception et DLL
    Bonjour à tous

    je vous expose mon problème.

    Je suis actuellement en train de développer un manager pour la gestion de dll. Ce manager me permet de charger une librairie, de lire ces informations, etc...

    Le manager sert aussi à gérer les exceptions sur des erreurs éventuelles.

    Le tout fonctionne plutôt bien; Mais il me manque juste une chose.

    Lors d'un chargement de dll, je test si le fichier est bien présent à l'emplacement, je test aussi le Handle après chargement.
    Mais si un fichier portant l'extension .dll existe au bon emplacement, mais que ce n'est pas une dll, delphi me lance une erreur (qui n'a pas l'air d'être une exception).
    "L'application ou la dll 'Chemin de la Dll' n'est pas une image windows valide"
    Mais pas d'indication sur une quelconque exception...

    Ce que j'aimerais savoir, c'est si il est possible de catcher cette erreur pour pouvoir traiter moi même ce problème? C'est à dire, est ce qu'il existe une classe d'exception spécifique à ce problème? car je ne vois pas comment je pourrais tester si le fichier est ou non une dll valide pour lever moi même l’exception... Ou alors, existe-t-il une fonction pouvant tester la validité d'une dll?

    en attente de vos réponse, Bonne journée à vous

    jak

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 577
    Points : 25 225
    Points
    25 225
    Par défaut
    Problablement, une DLL en 64Bits dans un process 32Bits ou inversement

    As-tu cette erreur lors du LoadLibrary ?
    Etrange, tu devrais plutôt avoir NULL et faire un appel à GetLastError pour savoir ce qui ce passe

    Si un try LoadLibrary except ne capture rien, ce n'est pas une Exception mais probablement un message d'erreur de l'OS, c'est un peu brutal !

    As-tu des liaisons statiques via le mot clé external ?
    Si ta DLL lance d'autres DLL, en n'utilisant QUE LoadLibrary tu pourrais affiner l'endroit où ça plante

  3. #3
    Nouveau membre du Club Avatar de JakRenegade
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Etudiant en Informatique

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Points : 39
    Points
    39
    Par défaut
    En fait, l'erreur ne m'arrive pas dans la normale. C'est moi qui la force si je peux dire.

    En gros, j'ai cherché tout ce qui pourrait déclencher une erreur dans la gestion des Dll. et le dernier truc qui m'est venu, c'est ce problème de fichier qui ne serait pas une dll ou serait une dll corrompue.

    Donc pour le simuler, c'est bourrin je sais, mais j'ai pris un fichier texte, je lui ai mis l'extension .dll et j'essaie de le charger.

    Je me doute que c'est brutal, mais imaginez un fichier qui ne serait pas une dll mais portant l'extension .dll (merci windows) et que le programme essaierait de charger, ça aurait le même effet, non?

    Après, ce n'est pas une erreur bloquante, donc pas de réelle soucis. Juste que l'utilisateur se retrouve avec un message d'erreur plutôt barbare et que j'aimerais éviter.

    Mais en y réfléchissant bien, cette erreur est très très peu commune. Donc si il n'y a pas de manière de gérer ça, je continuerai comme je le fais en ce moment.

Discussions similaires

  1. Réponses: 10
    Dernier message: 16/10/2007, 09h57
  2. [C#] Problème exception mscorlib.dll
    Par moulefrite dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/07/2007, 15h21
  3. [VC6 et MFC] Exception dans MFC42D.dll
    Par Philippe320 dans le forum MFC
    Réponses: 8
    Dernier message: 09/12/2005, 14h14
  4. gestionnaire d'Exception dans DLL
    Par pirbd dans le forum Langage
    Réponses: 2
    Dernier message: 03/03/2005, 18h58
  5. [Kylix] exception qtinft.dll et multi-threading
    Par leclaudio25 dans le forum EDI
    Réponses: 3
    Dernier message: 27/03/2003, 18h09

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