begin process at 2012 05 29 22:42:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

problème de typedef


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème de typedef

jeudi 28 janvier 2010 à 11:32:00 | problème de typedef

Larwin

bonjour tout le monde.
Nouveau de le monde du c/c++, j'avoue que je galère quelque peu et je me retourne vers la communauté des développeurs pour trouver ce soutient dont j'ai bien besoin.

dans la pratique, voici un exemple qui marche bien :

// définition d'un pointeur de fonction
typedef BOOL (WINAPI *pfuncText)(HDC hdc, int nXStart, int nYStart, LPCTSTR lpString, int cbString);
...

dans mon code :
HMODULE hGdi = GetModuleHandle(L"gdi32.dll");
pfuncText MyFnText = (pfuncText)GetProcAddress(hGdi, "TextOutW");
...

jusqu'ici tout va bien


j'essaye maintenant de faire la même chose pour la fonction GdipDrawString de la library gdiplus.dll.
je n'arrive pas a faire la définition d'un pointeur vers la fonction.
voici les paramètre de la fonction GdipDrawString

GpStatus WINGDIPAPI
GdipDrawString(
GpGraphics *graphics,
GDIPCONST WCHAR *string,
INT length,
GDIPCONST GpFont *font,
GDIPCONST RectF *layoutRect,
GDIPCONST GpStringFormat *stringFormat,
GDIPCONST GpBrush *brush
);

j'imagine que c'est car la fonction prend en paramètre des pointeurs de classe (si je ne me trompe pas)...
en tout cas un

typedef GpStatus (WINGDIPAPI *pfuncDrawString)(GpGraphics *graphics, GDIPCONST WCHAR *string, INT length, GDIPCONST GpFont *font, GDIPCONST RectF *layoutRect, GDIPCONST GpStringFormat *stringFormat, GDIPCONST GpBrush *brush);

ne fonctionne pas.
Comment puis je écrire ce typedef ?
j'ai bien inséré l'include gdiplus.h, je suis sous vc 2008

Merci de votre aide.
vendredi 29 janvier 2010 à 00:24:22 | Re : problème de typedef

uaip

Salut,

GdipDrawString() est une winAPI ? Je ne la trouve pas sur la msdn. Cela dit, ça m'étonne qu'elle prenne des pointeurs de classe en paramètres (mais je ne sais pas).
As-tu essayé d'utiliser cette fonction "simplement", sans typedef ? Pour voir si le problème vient réellement du typedef.
Sinon, désolé, je ne vois pas...



Cordialement, uaip.
vendredi 29 janvier 2010 à 10:23:17 | Re : problème de typedef

Larwin

ok autant pour moi...
j'ai omis le "using namespace Gdiplus;"

et la tout fonctionne mieux directement !

je profite de ce thread pour poser une autre petite question assez basique je pense a laquelle je ne trouve pas de réponse.
concernant les pointeurs. je me suis fardé depuis quelques jours des cours et des docs sur le c/c++ mais je ne trouve rien concernant le sujet.

j'ai une fonction, pour l'exemple :
GpStatus WINGDIPAPI detourGdipDrawString(GpGraphics *graphics, GDIPCONST WCHAR *string, INT length, GDIPCONST GpFont *font, GDIPCONST RectF *layoutRect, GDIPCONST GpStringFormat *stringFormat, GDIPCONST GpBrush *brush)

ma variable brush est un pointeur vers une instance de la classe GpBrush ? jusque là j'ai bon ?
comment puis je faire pour appeler les méthodes de la classe GpBrush a travers ce pointeur, genre
brush.getColor() ou *brush.getColor(), enfin je pige plus trop le cumul classes / pointeurs.
vendredi 29 janvier 2010 à 19:08:43 | Re : problème de typedef

uaip

Réponse acceptée !
Salut.
Si c'est un pointeur : brush->getColor() (aussi, moins agréable à lire, mais équivalent : (*brush)->getColor()).


Cordialement, uaip.
vendredi 29 janvier 2010 à 19:18:29 | Re : problème de typedef

uaip

Oups, la grosse erreur.
(*brush).getColor() et non (*brush)->getColor().
Désolé.


Cordialement, uaip.


Cette discussion est classée dans : fonction, int, typedef, gdipconst, pfunctext


Répondre à ce message

Sujets en rapport avec ce message

Pas compris les arguments [ par Bog ] Bonjour.Voila à chaque fois que je me lance dans un projet de programmation C++, je suis tjrs bloqué par certaines choses, surtout les arguments, et c Pas compris les arguments [ par Bog ] Bonjour.Voila à chaque fois que je me lance dans un projet de programmation C++, je suis tjrs bloqué par certaines choses, surtout les arguments, et c scanf() [ par clb ] bonjour à tous,j'ecris par exemple :int fonction(){ if(true) return 0; else return -1}dans main, si cette fonction retourne 0,alors j'appli GTK+-2.0, saisie d'un int ! [ par zazar ] G me demande si la réalisation d'une fonction retournant un int qu'un utilisateur à rentré par le biais d'une fenetre nécessite forcément une conversi Reference pour arguments de fonction! [ par CoxJoe ] Hello,Voila mon code qui est tres simple :# include # include using namespace std;// fonction pour entrer des lettresvoid getchar(char& name[]){ cout la fonction gotoxy(int abs,int ord) [ par jimtruand ] Salut !Je cherche la fonction equivalente a gotoxy(arg1,arg2) de borlandc++ sous Visualc++ ?C'est une fonction qui nous permet de placer le curseur ou 2 return d'une fonction [ par Silver360 ] Hello tout le monde!Je voulais savoir s'il est possible qu'une fonction retourne 2 paramètres ( dans le genre int int mafonction() ) ou si je dois fai Fonction déclaré en static [ par crocejf2000 ] Quel est la différence entre une fonction déclaré comme suit :int NomClasse::Nomfonctrion(int j){blabla}et une fonction déclaré en static :static int fonction d'alloaction dynamique [ par tomsawyerbelgique ] Pour une allocation dynamique d'un tableau à deux dimensions. Comme celle ci:cout // Initalisation int** tab = new int*[p_size1_tab]; for(in ProB avec la fonction int remove (const char*) [ par Avalon10101 ] _-=AvAloN=-_Jai un petit prob avec cette fonction :Je cré mon prog il na aucune erreur é il est donc pré à etre exécuter pour suprimer un fichier test


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,967 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales