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 C++ Discussion :

Problème fonction LoadLibrary


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 82
    Par défaut Problème fonction LoadLibrary
    Bonjour,

    Je comprends pas la fonction renvoit NULL...
    Si quelqu'un voit mon erreur, merci beaucoup, c'est vraiment pénible d'avoir une erreur toutes les deux lignes. ( Je débute en DLL )


    Le test.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include "test.h"
     
    int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) {
     
    	HMODULE hDLL = LoadLibrary("testDLL.dll");
    	if( hDLL == NULL ) { // == 0
    		MessageBox(0,"Dll Introuvable","",0);
    		return 1;
    	}
    	else
    		MessageBox(0,"Dll Trouvee","",0);
    	return 0;
    }
    Le test.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #ifndef TEST
    #define TEST
     
    #include <windows.h>
    #include <stdio.h>
     
     
     
    #endif
    J'ai pourtant essayer de suivre la doc msdn, puis j'ai lu pas mal d'exemples sur internet, pourtant après plein d'essai, toujours au niveau 0...

    Merci par avance

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    La dll testDLL.dll existe bien ?

    Dans quel répertoire est elle ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 82
    Par défaut
    Oui elle existe.

    J'ai essayé de différente manière. Je l'ai inclus dans le répertoire de mon application, dans le system32, mais aussi avec le chemin direct ou le chemin relatif.

    Aucun changement... Le code d'erreur est 0.

    Ce qui signifie d'après la msdn :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     0  System was out of memory, executable file was corrupt, or
        relocations were invalid.
    Je ne comprends pas ce où l'erreur se produit...

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Peut être une erreur dans la DLL.

    Lors du chargement de la DLL, il y a une fonction qui est appelée (j'ai pu son nom en tête mais c'est l'équivalent du main() d'un exe) qui est justement chargée d'initialiser la DLL.

    C'est quoi cette DLL, développée par toi, récupérée d'un projet, ... ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 82
    Par défaut
    Merci pour ton aide.

    La DLL a été développée par moi. La fonction invoqué lors de l'appel à la DLL est DLLmain.

    Après quelques test sur d'autres DLL, je m'aperçois que le problème viens effectivement de la DLL invoquée et non de mon exe.
    Je vais donc creuser cette piste, et je reviens pour vous tenir au courant.

    Merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Mets des points d'arrêt dans la fonction DllMain et InitInstance, et dis nous si tu y passes.

  7. #7
    Membre émérite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par défaut
    C'est parce que quand le système charge une librairie, il charge aussi les dépendances de cette librairie. Si une dépendance est absente, le LoadLibrary échoue. Pour résoudre ceci:

    • Essayer LoadLibraryEx avec l'option DONT_RESOLVE_DLL_
      REFERENCE



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

Discussions similaires

  1. Problème : Fonctions et commande Execute
    Par bubi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/11/2005, 11h01
  2. Problème fonction SDL
    Par seeme dans le forum SDL
    Réponses: 2
    Dernier message: 06/11/2005, 20h22
  3. Problème fonction PL/SQL
    Par SSJ17Vegeta dans le forum PL/SQL
    Réponses: 2
    Dernier message: 29/10/2005, 21h14
  4. Problème fonction et trigger sous 7.2
    Par anoukhan dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/06/2005, 22h53
  5. Réponses: 2
    Dernier message: 20/08/2004, 17h10

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