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 :

passage de resultat de fonction entre deux .h


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 49
    Points
    49
    Par défaut passage de resultat de fonction entre deux .h
    bonjour!
    j'ai un main qui utilisai une fonction d'une librairie appelé Cimg.h,
    la fonction utilisé est: (int) *image.ptr(curs_x,curs_y+1) et renvoi un entier. (je crois que c'est une fonction, mais je suis débutant alors c'est peut etre pas exactement ca , peut etre un pointeur sur fonction: ca existe ca? )
    maintenant j'ai placé la partie de code qui utilisait ce resultat dans un .h qui s'appelle traitement.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    grad_vert[curs_x][curs_y]=image.ptr(curs_x,curs_y+1);
    seulement maintenant le compilateur ne sais plus qui est image.ptr
    alors que j'ai includé Cimg.h dans traitement.h

    image.ptr fait reference a la valeur d'un pixel d'une image qui est ouvert par la libraire Cimg.h dans main.c.
    Dans le main, j'ouvre mon image avec la fonction de Cimg
    puis j'appelle la fonction de traitement.h.

    j'espere que c'est a peu près clair. voila je sais pas comment faire pour utiliser un resultat que renvoi un .h dans un autre .h en gros.

    thanx

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    j'espere que c'est a peu près clair. voila je sais pas comment faire pour utiliser un resultat que renvoi un .h dans un autre .h en gros.
    Non ce n'est pas clair. un .h est un fichier qui contient des déclarations et normalement pas de code exécutable. Il sert à informer les différents fichiers de la définition des types , ...Un .h ne renvoie pas de résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (int) *image.ptr(curs_x,curs_y+1)
    n'est pas la définition de la fonction mais un appel à une fonction membre de la classe de image.le (int)* est très intriguant compte tenu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grad_vert[curs_x][curs_y]=image.ptr(curs_x,curs_y+1);
    qui n'a pas à être dans un .h mais dans un .c

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 49
    Points
    49
    Par défaut
    donc si j'ai bien compris tout ce qui est fonction doit etre placé dans un .c?
    et il faut inclure ce .c de la anière d'un .h au niveau du main?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 49
    Points
    49
    Par défaut
    bon alors je vais essayer d'etre plus clair cette fois ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    double** traitement_image(int width,int height,double param_a,int param_lambda) {
     .... 
    grad_vert[curs_x][curs_y]=(int) *image.ptr(curs_x,curs_y+1)
    ....		
    }
    j'ai placé ca dans un fichier traitement.c
    image.ptr est la valeur de pixel d'une image qui a été ouvert dans le main
    grace au lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CImg<unsigned char> image("img/lena.ppm"), visu(500,400,1,3,0);
    				const unsigned char red[3]={255,0,0}, green[3]={0,255,0}, blue[3]={0,0,255};
    				image.blur(0);
    				CImgDisplay main_disp(image,"Click a point"), draw_disp(visu,"Intensity profile");
    qui font toute appelle a la librairie Cimg.

    j'ouvre donc l'image grace a ces lignes au debut de main.c puis j'appelle la fonction traitement_image de traitement.c
    j'ai mis un include"traitement.c" au debut de mon main.

    Le problème est que le compilateur ne sais pas qui est image.ptr

    voila j'espere que c'est plus clair cette fois [/quote]

  5. #5
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    et il faut inclure ce .c de la anière d'un .h au niveau du main
    Mais non.
    j'ai mis un include"traitement.c" au debut de mon main.
    Le problème est que le compilateur ne sais pas qui est image.ptr
    Je ne sais pas comment t'aider.
    Ne prend pas en mal ce qui suit, mais je crois qu'avant de te lancer dans ce genre de choses, fais une pause et regardes un peu le problème du rôle des .h et comment faire un programme avec plusieurs fichiers .c.
    Pour le moment, il y a des choses de base qui t'échappent et qu'il est difficile d'expliquer sur un forum. Si ensuite, il reste des choses obscures, pose ici tes questions.
    Amicalement

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 589
    Points
    41 589
    Par défaut
    En termes techniques, cherches la définition de "Compilation séparée" (ou l'art de faire un programme en compilant plusieurs fichiers sources au lieu de "un seul qui inclut tous les autres")

Discussions similaires

  1. Passage d'une classe runnable entre deux Activity
    Par gabrielpf dans le forum Android
    Réponses: 2
    Dernier message: 13/06/2014, 16h00
  2. Appel de fonction entre deux objects séparés
    Par actiproj dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/03/2014, 19h21
  3. Resultat de duree entre deux heures dans une txtbox
    Par crashfire dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 04/02/2010, 16h55
  4. Resultat de recherche entre deux dates
    Par Titeuf_sql dans le forum Langage SQL
    Réponses: 1
    Dernier message: 20/03/2007, 16h38
  5. [jsp][servlet]passage de paramètre entre deux frames
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 29/06/2004, 12h14

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