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

Windows Discussion :

Problème chargement de librairie


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 126
    Par défaut Problème chargement de librairie
    Salut c'est encore moi avec un nouveau problème :
    Alors voilà j'essais de charger une librairie avec cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /* Load the addin */
    hModule = LoadLibrary( CopyDest );
    if ( !hModule )
    {
        printf( "Could not load addin module \"%s\"!\n", CopyDest );
    }
    Le problème c'est que ça n'arrive pas a charger ma librairie mais je ne sais pas pourquoi :S
    De plus je ne peux pas accéder ni modifier cette librairie car elle est fournit en installer un logiciel non open source !
    C'est possible de savoir pourquoi ?

  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
    GetLastError() peut te donner plus d'info dans le traitement de l'erreur.

    Juste une question tu es sûr du chemin de ta DLL.

    Au fait, on charge des DLL (*.dll) ou des exécutables (*.exe) avec LoadLibrary et pas des librairies (*.lib), c'est vrai que le nom peut prêter à confusion.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lpFileName : [in] Pointer to a null-terminated string that names the executable module (either a .dll or .exe file). The name specified is the file name of the module and is not related to the name stored in the library module itself, as specified by the LIBRARY keyword in the module-definition (.def) file.
    .
    voir ici : http://msdn.microsoft.com/en-us/libr...75(VS.85).aspx
    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é
    Inscrit en
    Mai 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 126
    Par défaut
    oui le chemin est bon car je fais le test suivant avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (SearchPath(TargetPath, SourceFileName, ".dll", sizeof(buffer), buffer, &filepart))
    PS : oui je connais bien la différence entre les .lib et les .dll mais bon une dll c'est en quelque sorte une "librairie" pour un éxécutable alors que les .lib c'est pour leur compilation en gros non ?

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 126
    Par défaut
    sinon comment on se sert de ta fonction ?

    getLasError(LoadLibrary(...)); ???

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /* Load the addin */
    hModule = LoadLibrary( CopyDest );
    if ( !hModule )
    {
        DWORD err = GetLastError();
        printf( "Could not load addin module \"%s\" : error %d\n", CopyDest, err );
    }
    Voir aussi la fonction FormatMessage(), qui permet d'obtenir une chaîne expliquant l'erreur.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 126
    Par défaut
    alors voilà j'ai utilisé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    /* Load the addin */
    hModule = LoadLibrary( CopyDest );
    if ( !hModule )
    {
         DWORD err = GetLastError();
         printf( "Could not load addin module \"%s\" : error %d\n", CopyDest, err );
         DisplayLastError();
    }
    avec cette fonction pour me dire ce qu'est l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    void DisplayLastError()
    {
    	LPVOID lpMsgBuf = 0;
    	DWORD dwErr = GetLastError();
    	if(dwErr) {
    		FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
    		NULL, dwErr, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
    		(LPTSTR) &lpMsgBuf, 0, NULL);
    		if(lpMsgBuf) {
    			printf("error : %s\n",(LPCTSTR)lpMsgBuf);
    			LocalFree(lpMsgBuf);
    		}
    	}
    }
    et ça me met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Could not load addin module "c:\WINDOWS\system32\bsp.dll" : error 1114
    error : Une routine d'initialisation d'une librairie dynamique (DLL) a échoué.
    quelqu'un sait comment je fixe ça ?

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

Discussions similaires

  1. [JNA] Problème de chargement de librairie
    Par krapo13 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 16/06/2011, 09h23
  2. Servlet Tomcat problème chargement librairie
    Par Vlacar dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 05/05/2010, 13h23
  3. Réponses: 1
    Dernier message: 25/03/2010, 13h00
  4. [Débutant] Problème de chargement de librairie
    Par La Fée Dragée dans le forum MATLAB
    Réponses: 2
    Dernier message: 03/07/2009, 17h06
  5. [JNI]problème de chargement de librairie.
    Par brasinamical dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 14/04/2009, 13h47

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