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 :

[Dll] Exportation de structures


Sujet :

Windows

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 17
    Points : 10
    Points
    10
    Par défaut [Dll] Exportation de structures
    Bonjour.

    Dans ma dll, j'exporte la structure de la manière suivante :
    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
    DLLIMPORT struct s_map
    {
       unsigned int n_tile;
       struct s_chipset *chipset;
       SDL_Surface *surf_chipset;
    
       unsigned int width;
       unsigned int height;
       unsigned int *data;
       
       unsigned int offsetX;
       unsigned int offsetY;
       
       FMUSIC_MODULE *bg_sound;
    };
    DLLIMPORT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #if BUILDING_DLL
    # define DLLIMPORT __declspec (dllexport)
    #else /* Not BUILDING_DLL */
    # define DLLIMPORT __declspec (dllimport)
    #endif /* Not BUILDING_DLL */
    Dans mon programme, j'importe la structure de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extern "C" __declspec(dllimport) struct s_map;
    Et je l'utilise ici :
    Probllème :
    `s_map map' has incomplete type and cannot be defined
    Quelqu'un pour m'aider ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 65
    Points : 73
    Points
    73
    Par défaut
    Cette définition de ta structure:
    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
    struct s_map 
    { 
       unsigned int n_tile; 
       struct s_chipset *chipset; 
       SDL_Surface *surf_chipset; 
    
       unsigned int width; 
       unsigned int height; 
       unsigned int *data; 
        
       unsigned int offsetX; 
       unsigned int offsetY; 
        
       FMUSIC_MODULE *bg_sound; 
    };
    doit être dans un fichier .h qui est inclus dans le fichier source de ton programme (en plus de celui de ta dll). Lorsqu'il compile ce fichier source, le compilateur doit connaître cette définition. Le mécanisme que tu utilises permet l'accès d'une variable (ou d'une fonction) de la dll par le programme, il ne permet pas d'exporter la définition de la structure.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Ok merci bien.

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

Discussions similaires

  1. DLL export de fonction avec argument
    Par slate dans le forum C
    Réponses: 3
    Dernier message: 31/05/2006, 10h36
  2. [Dll] Exportations de procedures Overload
    Par Clorish dans le forum Langage
    Réponses: 6
    Dernier message: 20/07/2005, 10h19
  3. [DLL] Exports bizzares
    Par Gogoye dans le forum C++
    Réponses: 6
    Dernier message: 03/03/2005, 14h19
  4. Réponses: 4
    Dernier message: 07/12/2002, 07h34
  5. exporter la structure d'une base Sybase en ascii
    Par Jean-Cyp dans le forum Sybase
    Réponses: 5
    Dernier message: 05/11/2002, 16h15

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