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

C++ Discussion :

Import de DLL: fatal error C1083


Sujet :

C++

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Avril 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1
    Par défaut Import de DLL: fatal error C1083
    Bonjour,

    Si quelqu'un pouvait me donner un petit coup de pouce...concernant l'import de dll.

    Je travaille sur un projet qui a déjà demarrer et que je dois terminer.
    Le projet est sous visual Studio.

    Il existe une dll qu'on appelera X.dll contenant un fichier X.h avec
    extern "C" {
    __declspec(dllexport) int methode1();
    __declspec(dllexport) int methode2();
    }

    Je travaille sur un programme Y.exe qui doit faire appel au méthode de la dll.
    Dans le fichier StdAfx.h de mon projet, se trouve les lignes suivantes :

    #import "X.dll" named_guids

    Quand je compile mon exe,(avec les calling conventions à __cdecl (/Gd) ) , j'ai l'erreur suivante:
    stdafx.h(32) : fatal error C1083: Cannot open type library file: 'c:\X.dll': Erreur lors du chargement de la bibliothèque/DLL du type.

    La dll est bien présente dans le répertoire avec tous les droits.
    Qui pourrait me donner une piste de recherche ?
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    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 394
    Par défaut
    #import ne sert pas à cela.

    #import sert à importer une Bibliothèque de types d'un composant COM/OLE. Cette bibliothèque de types peut être un fichier .tlb indépendant, ou incorporé dans une DLL.

    Typiquement, pour utiliser les fichiers d'une DLL, on utilise un truc comme ça:
    http://www.developpez.net/forums/sho...42&postcount=6
    Code C/C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /*
    NomDeLaDll.h
    */
    #ifndef H_NOMDELADLL
    #define H_NOMDELADLL
     
    /* extern "C" : Pour les fonctions C et C++ accessibles dans les deux langages */
    #ifndef EXTERN_C
    #ifdef __cplusplus
    #define EXTERN_C extern "C"
    #else
    #define EXTERN_C extern
    #endif
    #endif
     
    /* NOMDELADLL_API : Pour dllimport/export */
    #ifdef BUILDING_NOMDELADLL
    #define NOMDELADLL_API __declspec(dllexport)
    #else
    #define NOMDELADLL_API __declspec(dllimport)
    #endif
     
    EXTERN_C NOMDELADLL_API int methode1();
    EXTERN_C NOMDELADLL_API int methode2();
     
    #endif /* ! H_NOMDELADLL */
    Ainsi, il suffit de compiler la DLL avec la définition BUILDING_NOMDELADLL dans la ligne de commande (ou les options du projet), et d'utiliser le fichier d'en-tête à la fois pour la DLL et pour les programmes qui l'utilisent (sans la définition, cette fois).
    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.

Discussions similaires

  1. Fatal error C1083
    Par jeanlou dans le forum C++/CLI
    Réponses: 1
    Dernier message: 08/05/2011, 00h28
  2. Réponses: 1
    Dernier message: 22/12/2010, 13h55
  3. Réponses: 4
    Dernier message: 05/05/2010, 16h50
  4. fatal error C1083: Impossible d'ouvrir le fichier include : stdio.h
    Par math26 dans le forum Bibliothèque standard
    Réponses: 3
    Dernier message: 03/12/2007, 23h50
  5. Réponses: 7
    Dernier message: 20/01/2007, 19h00

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