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

Dev-C++ Discussion :

creation DLL dev-cpp


Sujet :

Dev-C++

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut creation DLL dev-cpp
    j'ai un probleme de creation de DLL sous dev-cpp (OS XP),

    voila mon code :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    /* Replace "dll.h" with the name of your header */
    #include "dll.h"
    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>
     
    DLLIMPORT void HelloWorld ()
    {
        MessageBox (0, "Hello World from DLL!\n", "Hi", MB_ICONINFORMATION);
    }
     
     
    BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                           DWORD reason        /* Reason this function is being called. */ ,
                           LPVOID reserved     /* Not used. */ )
    {
        switch (reason)
        {
          case DLL_PROCESS_ATTACH:
            break;
     
          case DLL_PROCESS_DETACH:
            break;
     
          case DLL_THREAD_ATTACH:
            break;
     
          case DLL_THREAD_DETACH:
            break;
        }
     
        /* Returns TRUE on success, FALSE on failure */
        return TRUE;
    }
    DLLIMPORT __declspec (dllexport) char *IP()
    {
    WSADATA WSAData; 
    WSAStartup(MAKEWORD(1, 1), &WSAData); 
    char FAR buffer[64] = "", *pt;
    struct sockaddr_in sin;
    struct hostent *phe;
    gethostname(buffer, sizeof(buffer));
    phe = gethostbyname(buffer);
    int I = 0;
    while(phe->h_addr_list[I + 1] != NULL){
    I++;
    }
    sin.sin_addr.s_addr = *((unsigned long *) phe->h_addr_list[I]);
    pt=inet_ntoa(sin.sin_addr);
    WSACleanup();
    return pt;
    }
    et voila ce que me it le compilateur :

    D:\Dev-Cpp\dllmain.c [Warning] In function `IP':
    34 D:\Dev-Cpp\dllmain.c parse error before `char'
    37 D:\Dev-Cpp\dllmain.c `buffer' undeclared (first use in this function)
    38 D:\Dev-Cpp\dllmain.c `phe' undeclared (first use in this function)
    39 D:\Dev-Cpp\dllmain.c parse error before `int'
    40 D:\Dev-Cpp\dllmain.c `I' undeclared (first use in this function)
    43 D:\Dev-Cpp\dllmain.c [Warning] built-in function `sin' used without declaration
    43 D:\Dev-Cpp\dllmain.c request for member `sin_addr' in something not a structure or union
    44 D:\Dev-Cpp\dllmain.c `pt' undeclared (first use in this function)
    44 D:\Dev-Cpp\dllmain.c request for member `sin_addr' in something not a structure or union


    alors que si je compile ce code dans un programme comme une windows application ou en console application il fonctionne tres bien et me reporte aucune erreur....

    est-ce que quelqu'un serait d'ou peut venir ce probleme ?

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Si tu programmes en C, tu ne peux pas définir des trucs à la volée.
    Toutes les variables locales à une portée doivent être déclarées en début de la portée.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut
    est-ce que tu pourrais etre plus explicite s'il te plait....


  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Je me suis très mal exprimé en effet. :%s/portée/bloc/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    { 
        WSADATA WSAData; 
        WSAStartup(MAKEWORD(1, 1), &WSAData); 
        char FAR buffer[64] = "", *pt;
    0- "{" => début de bloc
    1- déclaration d'une variables
    2- appel de fonction
    3- déclaration de 2 variables.

    Le fait que ton 3- arrive avant ton 2- est interdit en C.
    Et le message d'erreur que tu as présente tous les symptômes d'un morceau de code compilé avec du C et non du C++ -- ce qui se comprend vu le nom de ton fichier.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 140
    Points : 76
    Points
    76
    Par défaut
    merci ! ca marche effectivement !

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

Discussions similaires

  1. Utilisation d'une DLL tierce - Dev-cpp + VB6
    Par vihrea dans le forum Dev-C++
    Réponses: 0
    Dernier message: 08/02/2010, 17h23
  2. Compiler dll avec Dev-Cpp
    Par madislak dans le forum Dev-C++
    Réponses: 2
    Dernier message: 15/02/2006, 18h06
  3. [dev-cpp] probleme de link
    Par alex1er dans le forum Dev-C++
    Réponses: 5
    Dernier message: 20/01/2005, 17h41
  4. Mysql++ et dev-cpp..
    Par MrPomme dans le forum Windows
    Réponses: 4
    Dernier message: 03/08/2004, 14h50
  5. compilation directx dev-cpp
    Par gaut dans le forum DirectX
    Réponses: 3
    Dernier message: 11/02/2004, 04h16

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