Taille d'un LPCVOID

wallegen Messages postés 12 Date d'inscription samedi 18 septembre 2004 Statut Membre Dernière intervention 2 juin 2006 - 19 avril 2006 à 02:31
wallegen Messages postés 12 Date d'inscription samedi 18 septembre 2004 Statut Membre Dernière intervention 2 juin 2006 - 20 avril 2006 à 14:28
DWORD myfprintf ( LPCVOID texte )

{

WriteFile ( fichier, texte,strlen(texte), &taille, NULL );
}





J'ai simplifié la fonction pour la compréhension,si j'ai bien compris
strlen attend un const char* en argument alors que je lui passe un
LPCVOID(je ne peux pas changer!)

J'ai donc une erreur à la compilation,comment récupérer alors la taille en sachant que sizeof ne marche pas non plus!?

9 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
19 avril 2006 à 02:57
DWORD myfprintf (LPCVOID texte, DWORD size)
{
WriteFile ( fichier, texte,size, &taille, NULL );
}

La taille DEVRA être calculer en dehors de la fonction.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
19 avril 2006 à 02:59
Un pointeur void vaut toujours 4 octects. Impossible de savoir la taille de sa donnée dans la fonction.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 avril 2006 à 09:48
strlen() possible si on est certain que c'est une chaine, autrement il faut par force un param disant le nbr d'octets à écrire.

ciao...
BruNews, MVP VC++
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
19 avril 2006 à 22:58
Ouais c'est ce que je disais et tu remarquera que j'ai retenue la leçon (un pointeur vaut 4 octects (en 32bits))

___________________________________________
Les plus grands esprits trouvent toujours une solution
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 avril 2006 à 23:10
Mais c'est clair pour tout le monde que ton imprimante interne fonctionne parfaitement.

ciao...
BruNews, MVP VC++
0
wallegen Messages postés 12 Date d'inscription samedi 18 septembre 2004 Statut Membre Dernière intervention 2 juin 2006
19 avril 2006 à 23:35
Merci à tous!



J'ai résolu mon pb comme ceci




DWORD myfprintf ( LPCVOID texte,int i )

{

WriteFile ( fichier, texte,i, &taille, NULL );

}


Je ne calcul pas la taille hord de la fonction mais je donne la valeur
à i suivant ce que je lui envoie dans "texte",c'est pas trés
propre mais ça marche (alors quand on est débutant ^^)



++
0
wallegen Messages postés 12 Date d'inscription samedi 18 septembre 2004 Statut Membre Dernière intervention 2 juin 2006
19 avril 2006 à 23:37
d'ailleurs c'était le conseil donné plus haut :-)
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
19 avril 2006 à 23:41
"Je ne calcul pas la taille hord de la fonction mais je donne la valeur à i suivant ce que je lui envoie dans "texte"" Je comprend pas. Quesque tu veut dire. Tu fais comme ça???

myfprintf("Bonjour", 7);

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
wallegen Messages postés 12 Date d'inscription samedi 18 septembre 2004 Statut Membre Dernière intervention 2 juin 2006
20 avril 2006 à 14:28
oui

......
myfprintf("Bonjour", 7);


myfprintf("good", 4);

....
myfprintf (&Char,1);

/auteurdetail.aspx?ID=617077 DWORD myfprintf (LPCVOID texte, DWORD size)
{
WriteFile ( fichier, texte,size, &taille, NULL );
}
0
Rejoignez-nous