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 :

erreur: differs in levels of indirection from


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 24
    Par défaut erreur: differs in levels of indirection from
    Salut,
    J'ai créer une dll. Dans cette Dll j'ai une fonction simulation qui en appelle une autre fonction simuler.
    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
     
    __declspec(dllexport)
    void simuler( ST_RES_ELEM *res, ST_VARIETE *var, int j_semis )
    {
    J = j_semis - J_semis_d;
    /*develop( Implantation, var, j_semis );*/
       res->j_semis = j_semis;
       res->ster    = Ster_t;
       res->j_4f    = J_4f;
       res->j_rp    = J_rp;
       res->j_ip    = J_ip;
       res->j_ep    = J_ep;
       res->j_flo   = J_flo;
       res->j_mat   = J_mat;
       res->j_tp    = J_tp;
       res->j_dc2   = J_dc;
       res->j_n1    = J_n1;
       res->j_n2    = J_n2;
       res->j_dm    = J_dm;
       res->j_n3    = J_n3;
       res->j_dr    = J_dr;
    }
    /********************************************************************************************/
    void __stdcall simulation  (ST_RES_ELEM *res1, ST_RES_ELEM *res2, ST_VARIETE *Variet1, ST_VARIETE *Variet2)
    {
    int i;
    res1 = calloc( Nb_annee, sizeof(ST_RES_ELEM));
    res2 = calloc( Nb_annee, sizeof(ST_RES_ELEM));
    if (!res1 || !res2) exit(-1);
    for ( i=0; i < Nb_annee; i++)
    {
     lir_met( &Annee[i], J_semis_d );
     simuler( &res1[i], &Variet1, J_semis_d);
     
    } 
    };
    Mais à la compilation voici l'erreur afficher:
    1:warning C4047: 'function' : 'struct variete *' differs in levels of indirection from 'struct variete ** '
    2:warning C4024: 'simuler' : different types for formal and actual parameter 2
    Pouvez vous m'aider?

  2. #2
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    DLL: extention de l'application?
    ie?

  3. #3
    Membre éclairé Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Par défaut
    1:warning C4047: 'function' : 'struct variete *' differs in levels of indirection from 'struct variete ** '
    ça signifie qu'une de tes fonctions ("simuler" a priori) possède un paramètre de type "struct variete *", et qu'en réalité tu lui passses un "struct variete **"

    je suppose que ST_VARIETE est un pointeur vers "struct variete" ?

    regarde ton parametre Variet1, c'est DEJA un pointeur vers ST_VARIETE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    simulation(ST_RES_ELEM *res1, ST_RES_ELEM *res2, ST_VARIETE *Variet1, ...
    mais tu passe l'adresse vers Variet1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    simuler( &res1[i], &Variet1, J_semis_d);
    donc tu passes un pointeur vers un pointeur vers un "struct variete"

  4. #4
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 24
    Par défaut
    Donc si je comprends bien je remplace &Variet1 par Variet1?

  5. #5
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 24
    Par défaut
    Merci c'est resolu. J'ai remplacé &Variet1 par Variet1. Merci beaucoup.

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

Discussions similaires

  1. [Erreur]Could not parse mapping document from resource
    Par Le Pharaon dans le forum Hibernate
    Réponses: 5
    Dernier message: 17/06/2009, 10h53
  2. Réponses: 1
    Dernier message: 18/03/2007, 19h03
  3. Réponses: 3
    Dernier message: 29/01/2007, 13h39
  4. Erreur de syntaxe dans la clause from
    Par shub dans le forum Access
    Réponses: 1
    Dernier message: 12/06/2006, 20h24
  5. Réponses: 2
    Dernier message: 03/06/2006, 00h22

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