Problème passage de C à C++

Résolu
cs_tintin72 Messages postés 122 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 22 juillet 2006 - 20 nov. 2005 à 17:40
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 20 nov. 2005 à 22:21
Bonjour,


J'ai récupéré un programme en C (sous Windows) que j'avais fait et qui affiche des informations sur les évènements MIDI générés par mon clavier (midi).
Bref ce programme fonctionne trés bien mais lorsque je veux le recompiler en c++ j'ai un message d'erreur.


J'ai 2 variables déclarées comme suit:


MIDIHDR midiHdr; // variable de type structure MIDIHDR
unsigned char SysXBuffer[256];


puis plus tard quand je place le pointeur contenu dans la structure MIDIHDR sur le tableau de char:


midiHdr.lpData = (LPBYTE)&SysXBuffer[0];


le compilo me dit: "invalid conversion from `BYTE*' to `CHAR*' "


J'ai tester quelque trucs mais rien n'a marché. Je pense cependant que ça doit être un problème lié au passage du C au C++ (puisqu'en C tout marche bien)..
Est ce que quelqu'un pourrait m'aider ?


Merci

Tintin 72

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 nov. 2005 à 18:41
normal, lpData est LPSTR.
midiHdr.lpData = (LPSTR) &SysXBuffer[0];
devrait aller.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 nov. 2005 à 19:37
Le C se moque du type d'un pointeur, ça fait toujours 4 octets sur system 32 bits et basta.
Vive le C, pas de philo à la noix !!! (bouhh y en a qui vont raler)

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
cs_tintin72 Messages postés 122 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 22 juillet 2006
20 nov. 2005 à 19:22
Ok ça marche merci :-)

Mais je comprends pas pourquoi LPBYTE fonctionne en C.
Il devrait y avoir le même message non ?

Tintin 72
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
20 nov. 2005 à 22:21
oui, en C++, il faut spécifier le cast...

et en C, ça dépend de la plateforme de compilation



en gros, privilégie l'explicite et ça évitera des erreurs

___________________________________________________________
Magicalement
Nono
0
Rejoignez-nous