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 :

surcharge de fonction + SDL


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par d�faut surcharge de fonction + SDL
    bonjour tout le monde
    le probl�me que je me pose pour le moment n'est pas une chose que l'on rencontre tout le temps. Je m'explique : j'utilise la librairie SDL(donc en C) pour faire des images, mais le langage que j'utilise est le C++. J'avais lu quelque part que dans ce sens l� (C=>C++) il n'y avait aucun probl�me de compatibilit�, contrairement au sens inverse (C++ => C). Effectivement, mes programmes compilaient bien dans les deux langages.
    Cependant, je suis tomb� r�cemment sur un probl�me �trange. Alors, tout d'abord, comme la librairie SDL utilise un type de variable nomm�e Uint32 pour les couleurs, j'avais fait
    typedef Uint32 Couleur
    pour clarifier mes codes, et affirmer le "c'est quoi" du type. Car en fait, je m'en fiche de savoir si il est stock� comme un unsigned int sur 32 bit ou sur que sais-je, l'important c'est que ce soit une couleur


    tout allait bien jusque l�. Le probl�me est qu'� un moment donn�, j'ai voulu mettre du texte sur mon image. J'ai alors utilise la librairie SDL_ttf, qui fonctionne tr�s bien. Mais cette nouvelle librairie utilise des couleurs de type structure contenant trois champs d'entiers. Bref, j'�tais bien emb�t�, car je me trouvais oblig� de faire des conversion � tout va, et que je devais posseder pour l� m�me couleur plusieurs variables pour contenir les formats.

    J'ai alors pens� : je vis surcharger les fonctions de la SDL_ttf, pour faire que si on leur passe une Couleur en param�tre plut�t que la structure qu'elles attendent, la conversion se fait � l'int�rieur, avec l'appel � la bonne fonction ensuite. Comme l'�criture � l'�cran n'es pas une chose si courante, ce niveau d'abstraction n'alourdirait pas trop l'ensemble.
    Cependant, j'ai d�couvert que je ne pouvais pas surcharger la fonction : quand j'essai de le faire, mon compilo (microsoft visual c++ 2008) me dit que la fonction existe d�j�, et ce quelque soit la fa�on dont je surcharge la fonction. La question que je me pose est alors la suivante : d'o� viens ce bug? Est-ce un probl�me parce que j'essai de surcharger une fonction qui est d�j� compil�e? Est-ce que �a viens du fait que la compilation de la dll a �t� faite sous le mode C et non C++?

    je ne trouve pas pourquoi j'ai ce bug. si vous pouviez m'aider, �a serait gentil ^^

  2. #2
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Les surcharges de fonctions sont interdites en C, �a ne marche qu'en C++. Tu obtiens l'erreur avec quel langage ?

  3. #3
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Citation Envoy� par bubuche87 Voir le message
    bonjour tout le monde
    le probl�me que je me pose pour le moment n'est pas une chose que l'on rencontre tout le temps. Je m'explique : j'utilise la librairie SDL(donc en C) pour faire des images, mais le langage que j'utilise est le C++. J'avais lu quelque part que dans ce sens l� (C=>C++) il n'y avait aucun probl�me de compatibilit�, contrairement au sens inverse (C++ => C). Effectivement, mes programmes compilaient bien dans les deux langages.
    En fait, c'est faux. Contrairement aux id�es re�ues, le C++ n'est pas un superset du C (par exemple, ce code C parfaitement valide ne compile pas en C++). Toutefois, il existe un subset commun aux deux langages, et on peut agrandir ce subset par l'utilisation intelligente de macros.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par d�faut
    non, je compile bien en C++, mais j'utilise une lirairie d'image qui s'appelle SDL, et qui a �t� compil� en C. Ma question est : est-ce que je peut surcharger dans mon code les fonctions compil�es dans la librairie?

    Enfin, je ne vois pas trop d'o� viens l'erreur de toute fa�on.

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Je ne crois pas qu'on puisse, car les fonctions d'une biblioth�que C sont d�clar�es en extern "C", ce qui signifie qu'elles sont un seul nom C.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. API HOOK, Dump dll, Surcharge de Fonction
    Par MicroAlexx dans le forum Windows
    R�ponses: 2
    Dernier message: 30/12/2005, 10h39
  2. [MFC] Surcharger des fonctions de CView
    Par Philippe320 dans le forum MFC
    R�ponses: 2
    Dernier message: 22/11/2005, 21h24
  3. singleton, polymorphisme, et surcharge de fonction
    Par legend666 dans le forum C++
    R�ponses: 11
    Dernier message: 14/11/2005, 09h27
  4. Probl�me fonction SDL
    Par seeme dans le forum SDL
    R�ponses: 2
    Dernier message: 06/11/2005, 20h22
  5. Surcharge de fonction d'un edit dynamique
    Par Tartar Ukid dans le forum C++Builder
    R�ponses: 4
    Dernier message: 13/10/2003, 11h56

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