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

WinDev Discussion :

Impossible de charger une Dll


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    RETRAITE
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Points : 18
    Points
    18
    Par défaut Impossible de charger une Dll
    Bonjour,
    J'essaie de charger une Dll avec le classique
    Inst est un entier
    Inst = ChargeDll("MaDll.dll")
    Si Inst = 0
    erreur("Erreur chargement dll")
    FinProg()
    FIN

    Lorsque je lance l'appli depuis la plateforme développement (Go) ça fonctionne normalement

    Après compilation , si je lance l'exécutable , j'ai le message d'erreur

    J'ai même mis un Multitache(200) juste après l'appel pour laisser le temps à la dll de se charger , le résultat est le même

    Si quelqu'un à une solution ?
    Merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 244
    Points : 12 878
    Points
    12 878
    Par défaut
    Bonjour,
    Peut-être qu'un erreurinfo() pourra te donner une piste.

    Tatayo.

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    peut-être faut-il mettre le chemin complet vers la dll ou l'inclure dans l'exécutable ... ?

    à bientôt,

    Nicolas

  4. #4
    Membre à l'essai
    Homme Profil pro
    RETRAITE
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Points : 18
    Points
    18
    Par défaut
    Inclure dans l'exécutable ? c'est a dire ?

    La dll est bien dans le repertoire exe avec le nom correct Je pige pas pourquoi ça fonctionne lorsque que suis dans la plateforme de développement et quand j'utilise le debug la reponse de ChargeDll est bien <> 0 et ça passe, j'ai bien accès à toutes les fonctions de la DLL idem lorsque je fais un GO

    Il doit y avoir quelque chose lors de la compil , qui ne me signale pas d'erreurs

    ErreurInfo() me retourne :Erreur au chargement de la DLL Une routine d'initialisation d'une bibliotheque de lien dynamique (DLL) a échoué

    J'utilise les DLL de l'opensource de MP3Tools id3Tools,dll , AudioGenie3,dll et ramin,dll et seule cette derniere ne se charge pas,

    J'utilise ça dans un logiciel de Gestion de partitions musicales que je suis entrain de réaliser (Partie utilisation des tags MP3 - Pochettes Paroles etc,,,

  5. #5
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Peut être que cette dll a d'autre dépendance (à besoin d'autres dll par exemple).

    Essaye de voir avec Dependency walker. C'est un outil qui permets de connaitre les dépendances d'une dll ou d'un exe.

    http://www.dependencywalker.com/

  6. #6
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Salut!

    l'expert

    Super outil que je viens de connaitre!

    Merci

  7. #7
    Membre à l'essai
    Homme Profil pro
    RETRAITE
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Points : 18
    Points
    18
    Par défaut
    Je vais voir avec ça,

    Mais je pense pas que ça soit ça : La dll ne se chargerait pas en mode debug ou environnement de développement ?
    Je tiens au corant
    Merci

  8. #8
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour
    dans quel répertoire se situe la dll en question ?
    Gancau

  9. #9
    Membre à l'essai
    Homme Profil pro
    RETRAITE
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Points : 18
    Points
    18
    Par défaut
    Toutes les DLL sont dans le repertoire exe

    En fait j'ai recopié les dll de l'open source Mp3Tools (AudioGenie, id3lib, ramin, et toutes les autres dll utilisées pour les tags mp3

    J'ai importé ses Classes (celles qui servent à taguer) ainsi que les procédures globales qui me sont utiles. J'ai utilisé sa version WD15 que j'ai compilée avec ma WD17 et là pas de Pb , sa lib ramin.dll se charge bien.

    je comprend pas pourquoi, lorsque je suis dans l'environnement windev ça marche et qu'après compil l'executable ne fonctonne pas (chargement de la dll)

    Quand je lance l'analyse de la dll avec le prog depends j'ai ça comme messages

    Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
    Error: Modules with different CPU types were found.
    Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

    Trad Google
    Erreur: Au moins un module a une importation en suspens en raison d'une fonction d'exportation manquant dans un module implicitement dÈpendant.
    Erreur: Modules avec diffÈrents types de CPU ont ÈtÈ trouvÈs.
    Attention: Au moins un module a une importation en suspens en raison d'une fonction d'exportation manquant dans un module dÈpend retard charge.

    Mon PC est x64 et je génère un exe x32

    L'open-Source de Philippe RAMIN est là : www.gpratoold.com

  10. #10
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
    Ca ressemble tout de même enormément à une dll qui manque.

    Cela peut être une dll "système", genre msvcrt.dll.

    Essaye de voir avec cet outil "ProcessMonitor" http://technet.microsoft.com/en-us/s.../bb896645.aspx

    C'est un outil qui te permets de tracer tout les accès disque et base de registre qu'effectue une application.

    Paramètre le pour qu'il ne trace que les appels de ton exe et tu verras apparaître sur quel chargement de dll il bloque.


    Si cela ne t'aide pas, poste un bout de code fonctionnel voir même un projet de test complet et fonctionnel.

  11. #11
    Membre à l'essai
    Homme Profil pro
    RETRAITE
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Points : 18
    Points
    18
    Par défaut
    Bonjour tout le monde,
    Je vous remercie tous de vous interresser à mon Pb et pour les outils,
    Je vais monter un Petit truc avec ces Dll et je vous tiens au courant, encore merci

  12. #12
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour,
    Ta dll est dans le répertoire exe, mais peut être qu'il essaye de la charger dans un autre répertoire.
    Par hasard, ta dll est bien QUE dans CE répertoire ?
    Tu pourrais essayer de la mettre dans le réperoire système et voir le résultat.

    Gancau

  13. #13
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Citation Envoyé par gancau Voir le message
    Bonjour,
    Ta dll est dans le répertoire exe, mais peut être qu'il essaye de la charger dans un autre répertoire.
    Par hasard, ta dll est bien QUE dans CE répertoire ?
    Tu pourrais essayer de la mettre dans le réperoire système et voir le résultat.

    Gancau
    Une dll est toujours recherché en priorité dans le dosser de l'exe.

    http://msdn.microsoft.com/fr-fr/library/7d83bc18.aspx

  14. #14
    Membre à l'essai
    Homme Profil pro
    RETRAITE
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Points : 18
    Points
    18
    Par défaut
    J'ai déjà essayé de mettre dans system32 , Windev cherche en premier dans le rep exe, toutes les autres DLL se chargent bien et j'ai pas trié les dll inutiles pour le moment:

    J'ai fait un projet MP3Tag seul qui a le meme pb , je suis entrain de charger le source sur mon Google Drive , dès que c'est fait je vous donne les liens

    En plus quand ça fonctionnera ça pourra peut-être intéresser quelqu'un

    Pour l'examen des process j'ai pas compris comment chercher l'erreur

  15. #15
    Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2011
    Messages : 18
    Points : 49
    Points
    49
    Par défaut
    Bonjour, mon avis est qu'il faut générer un exe x64
    Citation Envoyé par Polystyrene Voir le message
    Toutes les DLL sont dans le repertoire exe

    je comprend pas pourquoi, lorsque je suis dans l'environnement windev ça marche et qu'après compil l'executable ne fonctonne pas (chargement de la dll)

    Mon PC est x64 et je génère un exe x32

  16. #16
    Membre à l'essai
    Homme Profil pro
    RETRAITE
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    J'ai essayé mais toutes les DLL sont pour x32 .......

    J'ai isole la partie Tag MP3 de mon projet et en ai fait un prog autonome qui a le même probleme, je le soumet à votre perspicacité

    Voilà les sources gérés avec WD17 et mon PC x64

    https://docs.google.com/file/d/0B25m...it?usp=sharing
    https://docs.google.com/file/d/0B25m...it?usp=sharing
    https://docs.google.com/file/d/0B25m...it?usp=sharing

    Merci d'avance pour votre implication

  17. #17
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Citation Envoyé par LeDièse Voir le message
    Bonjour, mon avis est qu'il faut générer un exe x64
    Désolé cela n'a aucun rapport, on peut très bien développer dans un environnement 64bits et compiler vers une cible 32bits.

    Tout comme, avec certains compilateurs, on peut développer sous Windows et compiler une exécutable OSX par exemple. (out tout autre environnement -> cross compilation)

  18. #18
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Alors ..... ^^

    J'ai fait un bout de code tout simple dans un projet W17 vierge et le projet porte le nom TestDLL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    nomDll est une chaîne = "ramin.dll"
    hInstance est un entier = ChargeDLL(nomDll)
    SI hInstance <= 0 ALORS
    	Erreur("Impossible de Loader la librairie " + nomDll, ErreurInfo())
    SINON
    	Trace(hInstance)
    FIN
    - 1) Si je lance en mode debogage, chargement de la dll ok.
    - 2) Si je génére l'exe qui se nomme donc TestDLL.exe et que dans le dossier de l'exe, je pose les dll : ramin.dll et id3lib.dll. Je lance l'exe et j'ai l'erreur que tu cites.
    - 3) Si je renomme l'exe créé au point 2 en Mp3Tools.exe et que je lance, cela fonctionne.

    J'aurais donc tendance à dire que le développeur de ramin.dll a volontairement fait une sorte de mini protection et que lors du chargement de la dll, il vérifie que le process qui héberge cette dll se nomme Mp3Tools.exe. Par contre je ne comprend pas qu'en environnement Windev on arrive tout de même à charger la dll, vu que le nom du process qui héberge les applications en mode test est wdtst.exe.

    Je te conseillerais de te rapprocher de l'auteur de cet outil pour en discuter avec lui.

    P.S. Les tests ont été effectués sous W7x64 et sous W7x32

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 217
    Points : 487
    Points
    487
    Par défaut
    Bonjour,

    Citation Envoyé par DelphiManiac Voir le message
    Alors ..... ^^

    Par contre je ne comprend pas qu'en environnement Windev on arrive tout de même à charger la dll, vu que le nom du process qui héberge les applications en mode test est wdtst.exe.
    Tout simplement parce que l'auteur utilise lui aussi Windev pour son projet MP3Tool et qu'il a inclut WDTEST.EXE dans sa dll.

    Cordialement

    Madsl@nD

  20. #20
    Membre à l'essai
    Homme Profil pro
    RETRAITE
    Inscrit en
    Février 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Février 2012
    Messages : 35
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup, ça a bien avancé, Je vais essayer de contacter l'auteur de la DLL , il me semble avoir vu une adresse Mail dans le code de MP3Tools

    J'ai fait l'essai en renommant MP3Tags en MP3Tools et tout fonctionne
    J'ai fait la même chose avec mon logiciel d'affichage de partitions et tout fonctionne aussi. Mais comme je mets ce logiciel à disposition de musiciens c'est pas une solution de renommer l'exe.

    Je vais lui envoyer un mail et voir avec lui si il y apossibilité d'utiliser sa Dll en le citant dans l'A propos de mon logiciel


    En tout cas pour taguer des MP3 ces Dll sont géniales

    Merci à tous

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/11/2006, 11h12
  2. Impossible de charger LIBMYSQL.DLL
    Par Dalès dans le forum Bases de données
    Réponses: 19
    Dernier message: 20/09/2006, 04h57
  3. [Librairie] Charger une DLL delphi
    Par yanis97 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 24/03/2006, 11h56
  4. Charger une DLL sous java
    Par mouzon dans le forum Général Java
    Réponses: 1
    Dernier message: 22/03/2006, 19h46
  5. Réponses: 5
    Dernier message: 13/10/2005, 10h49

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