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 :

appel des fonctions d'un fichier .h


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    Avril 2007
    Messages
    209
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Par d�faut appel des fonctions d'un fichier .h
    Je travaille sur un projet o� j�utilise la biblioth�que DTAPI Dektec si quelqu�un la connait, donc j�ai en import le fichier DTAPI.h(t�l�chargeable sur internet avec ces biblioth�ques .lib) ci-joint,et donc je veux appeler ds fonctions pour les utiliser afin de r�cup�rer les donn�es des cartes vid�os donc j�ai essay� �a par exemple
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     __int64 Freq;
    		DTAPI_RESULT ra;
    		/*ra = m_DemodCtrl.GetDemodControl());
    		*/
    		int b;
    		ra = m_DtOutp.GetRfControl(Freq,b);
    		LogF("freq %.2f",ra);
    Avec la fonction GetRfControl qui est d�clar�e dans DTAPI.h :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     DTAPI_RESULT  GetTunerFrequency([out] 
    __int64& FreqHz);
    Mais il retourne 0.00,je voulais savoir est ce que la m�thode d�appel est bonne,et comment appeler des fonctions avec en param�tres un variable de sortie
    le fichier joint n'est pa complet j'ai met juste un extrait
    Merci
    Fichiers attach�s Fichiers attach�s
    • Type de fichier : h DTAPI.h (12,8 Ko, 1724 affichages)

  2. #2
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Bonjour,

    ce qui t'int�resse c'est la fr�quence ou le code retour de la fonction ?
    Parce que l� tu affiches le code retour de la fonction...

    Un param�tre out, comme son nom l'indique, c'est toi qui fournit la variable qui stocke le r�sultat, la fonction se chargera d'en modifier la valeur. Le passage par r�f�rence ne demande l� aucune action particuli�re de ta part (contrairement au passage par pointeur).

    Dans tous les cas, ta fr�quence est stock�e dans... Freq (cap'tain obvious inside ), tu as m�me correctement nomm� tes variables (coup de chance ?).
    Alors pourquoi afficher ra, qui est le code retour de la fonction, et pas la valeur de Freq ?
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  3. #3
    Membre confirm�
    Homme Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    Avril 2007
    Messages
    209
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Par d�faut
    merci Bousk,j'ai essay� avec Freq mais il retourne pas le bon r�sultat,avec une erreur,la fonction telle qu'elle est d�clar�e dans le fichier DTAPI.h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    DTAPI_RESULT DtOutpChannel::GetRfControl (
    [in] __int64& RfRate, // RF frequency in Hz
    [out] int& LockStatus // Lock status of RF PLL
    );
    et moi j'ai fait �a pour l'appeler
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    __int64 Freq;
    		DTAPI_RESULT ra;		
    		int b;
    		ra = m_DtOutp.GetRfControl(Freq,b);
    		LogF("freq %.2f",Freq);
    Oui je veux qu'elle me retourne la fr�quence,et je n'ai pas bie compris comment �a marche le param�tre out !!

  4. #4
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Il te faut lire la doc de ta lib.

    Mais je ne comprends pas ce que tu essayes de faire, ou alors tu comprends pas ce que tu fais.

    Tu as une m�thode DTAPI_RESULT GetTunerFrequency([out] __int64& FreqHz);
    qui, si je m'en tiens � son nom, est sens� te donner la fr�quence.
    Et toi tu utilises DTAPI_RESULT DtOutpChannel::GetRfControl (
    [in] __int64& RfRate, // RF frequency in Hz
    [out] int& LockStatus // Lock status of RF PLL
    );

    Y'a pas comme un souci ?

    Quant aux param�tres out... c'est un principe basique du langage
    Si tu passes ton param�tre par r�f�rence, tu passes la variable elle-m�me, ce qui permet de la modifier � l'int�rieur de la fonction. C'est juste une utilisation d�tourn�e du passage par r�f�rence, puisque le C++ ne permet pas de retourner plusieurs valeurs.
    On passe en param�tre out les sorties, et la fonction en elle-m�me retourne un code erreur.

    Donc forc�ment, si la m�thode te retourne un code erreur, la fr�quence est incorrecte.
    Mais l� encore, c'est la doc qui te dira ce qu'il en est vraiment.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  5. #5
    Membre confirm�
    Homme Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    Avril 2007
    Messages
    209
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Par d�faut
    Ah mais l� j'ai initialis� mes param�tres __int64 Freq; int b; sans le & ,y a pas un souci l�-dessus? puisque dans la fonction c'est des r�f�rences avec &

  6. #6
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  7. #7
    Membre confirm�
    Homme Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    Avril 2007
    Messages
    209
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Par d�faut
    Merci j'ai compris le principe,j'ai m�me essay� avec l'autre fonction mais toujours le m�me probl�me
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    __int64 Freq;
     
     
    		//m_DtOutp.GetRfControl(Freq,b);
    		m_DemodCtrl.GetTunerFrequency(Freq);
    		LogF("freq %.2f",Freq);

  8. #8
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Le probl�me c'est que tu ne sais pas ce que tu fais.

    La lib fournit une m�thode, qui prend un param�tre out et retourne un code erreur.
    Tu ne fais aucune v�rification du code erreur.
    Si le code erreur indique qu'il y a un probl�me, il n'y a aucune raison que la fr�quence sortie soit correcte.
    Et c'est la doc de la lib en question qui te l'indiquera.
    Doc qu'il faut lire.

    Bonne lecture.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

Discussions similaires

  1. [PHP 4] Fonction appelant des objets d'un fichier OWL
    Par Mmeouerghemmi dans le forum Langage
    R�ponses: 0
    Dernier message: 10/06/2014, 19h22
  2. Appel des fonctions, ouverture d'un fichier.
    Par seijuro2347 dans le forum C++
    R�ponses: 1
    Dernier message: 24/09/2008, 01h12
  3. appel des fonctions d'un driver dans un programme en c
    Par richie25 dans le forum Windows
    R�ponses: 5
    Dernier message: 10/01/2006, 08h27
  4. R�ponses: 6
    Dernier message: 30/09/2005, 00h53
  5. Appel � des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    R�ponses: 3
    Dernier message: 26/05/2003, 13h33

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