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

API, COM et SDKs Delphi Discussion :

DLL saute au LoadLibrary dans l'exécutable Delphi


Sujet :

API, COM et SDKs Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut DLL saute au LoadLibrary dans l'exécutable Delphi
    Bonjour à vous tous,

    j'ai un petit problème avec une DLL codée en DELPHI et si quelqu'un a déjà vu quelque chose de semblable et pouvrait m'aider, cela serait apprécié!

    J'ai EXE codé en Delphi 2, la DLL en Delphi 7, l'exe utilise la DLL en la montant en mémoire à l'aide du Call API Loadlibrairy.
    J'exécute une première instance de cet exe, il load la DLL, appelle les procédure,etc... tout se passe bien. Sans fermer cette exe, je ré-exécute le même exe, ce qui me donne deux instances du même exe qui run en même temps et qui se branche sur la même DLL.
    Mais voilà, cette 2e instance de l'exe me fait une
    RUNTIME ERROR 216 sur la ligne

    LOADLIBRAIRY(PChar(Filename))

    quelqu'un a déjà cu cela?
    Comme si ma DLL était compilée d'une manière à ne pouvoir exister en double sur la pile principale...à moins que ca ne soit les param du projet Delphi de la DLL qui donne une DLL incorecte.

    Merci pour toute aide.

    Au revoir
    Bonne journée.

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    quel est le code de la section begin/end. de ta DLL ?

    as-tu du code d'initialisation dans des unités utilisées par ta DLL ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Rien aucun code dans le begin end de la DLL.
    J'ai bien une section initialization et finalization dans le bas où je FREE
    et met à nil tous mes obj, mais j'ai mis des SHOWMESSAGE en debug pour voir par où il passait lors de la séquence, et ce qui est curieux c'est qu'il n'entre carrément pas dans la DLL. Ni dans le begin end et ne passe même pas par le initialization...
    c'est vraiement lors du loadlibrairy du côté de l'exe qui ca fait des siennes...

    Que se passe-t-il au juste lors du loadlibrairy dans Windows?
    J'ai fait un petit tour sur MSDN, mais c'est très technique...

    Merci de votre aide.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    C'est résolu, un simple détail subtile creux dans la dll.
    Merci

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    Citation Envoyé par urusei Voir le message
    C'est résolu, un simple détail subtile creux dans la dll.
    Merci
    c'est à dire ?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Désolé ca fait un bout de temps que je ne suis pas revenu.

    Donc le problème était basic rien à voir avec windows ou les DLL.

    Il y avait deux fois une ouverture de fichier en accès exclusif et tentative d'écriture dedant...

    En allumant les break on exception dans le compilateur DELPHI, ca aidait à voir LA ligne de code qui sautait.

    Merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/05/2007, 12h03
  2. utiliser une DLL C++ dans un Exe Delphi
    Par rudi0 dans le forum Delphi
    Réponses: 1
    Dernier message: 13/12/2006, 22h49
  3. Réponses: 3
    Dernier message: 03/05/2006, 15h30
  4. Dll en c++ dans un programme delphi
    Par wikers dans le forum Langage
    Réponses: 2
    Dernier message: 04/08/2005, 15h39
  5. Réponses: 9
    Dernier message: 29/03/2005, 09h36

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