probleme de conversion

probleme de conversion - C++ - Programmation

Marsh Posté le 28-06-2005 à 15:18:29    

Bonjour, je réalise actuellement un lecteur audio.
Une partie du code est en c (les fonctions) et l'interface en c++.
Lorsque je vais chercher un morceau de musik pour le lire j'utilise la fonction CFiledialog et le morceau se met ds une list box.
La structure est alors HWND.
 
Seulement le code qui permet la lecture du morceau est en c est appelle un hfile (PlaySong(FILE *hfile))
 
 
Comment puis-je faire la conversion afin que la fonction PlaySong comprennent le fichier?
 
Merci

Reply

Marsh Posté le 28-06-2005 à 15:18:29   

Reply

Marsh Posté le 28-06-2005 à 15:56:59    

C'est pas un problème de conversion, c'est un problème de bien lire le type des paramètres.


---------------
Töp of the plöp
Reply

Marsh Posté le 28-06-2005 à 16:05:13    

Sorry pour l'erreur de vocabulaire, sais-tu néanmois résoudre mon problème?

Reply

Marsh Posté le 28-06-2005 à 16:58:07    

Tout est dans la doc à priori:
Tu choppes une chaine de caractere contenue dans la listbox, elle meme contenue dans ta hwind (ton handle de fenetre je crois)... ou un truc du genre.
 
(les mfc et moi ca fait 2)


---------------
Töp of the plöp
Reply

Marsh Posté le 28-06-2005 à 17:27:16    

c'est pas un pb de conversion...
La CFileDialog sert à parcourir le disque dur et récupérer le nom du fichier à jouer.
En aucun cas elle permet l'ouverture du fichier !
 
Voici un exemple qui pourra t'aider :
 

Code :
  1. CFileDialog l_dlgOpenFile( TRUE,
  2.     "*.mp3",
  3.     NULL,
  4.     0,
  5.     "WAV Files (*.wav)|MP3 files(*.mp3)||" );
  6. if( l_dlgOpenFile.DoModal() != IDOK )
  7. return;
  8. FILE * l_hFile = fopen(l_dlgOpenFile.GetPathName(), "r" );
  9. // etc...

Reply

Marsh Posté le 28-06-2005 à 17:28:56    

Merci a toi XtremDev

Reply

Marsh Posté le 28-06-2005 à 17:37:15    

n'oublie pas de fermer ton fichier après coup, par contre ... (et vive le C :/)

Reply

Marsh Posté le 28-06-2005 à 19:15:04    

Puisque tu commence en MFC pourquoi tu finis pas en MFC?
Le FILE* et le fopen c'est du C ça! LOL
A la place c'est du CFile ou CStdioFile si c'est un fichier texte.

Code :
  1. CFileDialog l_dlgOpenFile(TRUE, "*.mp3", NULL,
  2. 0, "WAV Files (*.wav)|MP3 files(*.mp3)||" );
  3. if( l_dlgOpenFile.DoModal() != IDOK )
  4.   return;
  5. CFile file;
  6. CFileException e;
  7. if (!file.Open(CFile::shareExclusive|CFile::modeRead,
  8. l_dlgOpenFile.GetPathName(), &e))
  9. {
  10.   // t'as un problème avec ton fichier
  11.   e.ReportError(); // Windows te dis ce qui ne vas pas
  12.   return;
  13. }
  14. // là tu fais ce que tu veux avec file
  15. // NB: le destructeur de file ferme le fichier tu n'as pas à le faire!


Bon je l'ai fait de tête alors y'a peut-être des erreurs...


Message édité par slash33 le 28-06-2005 à 19:19:57
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed