Le source est un prototype dans le sens ou il réécrit l'exemple avec
masm en utilisant la class c++ CWaveFile.
Beaucoup pensaient la chose infaisable,voila de quoi les détromper.
------- Pour réutiliser une clas c++---:
Une classe c++ est constitué d'un .h et d'un .cpp.
*** Il faut d'abord vérifier que toutes les fonctions sont déclarées
dans le .cpp
exemple: dans sdkwavefile.h on garde la déclaration de la fonction
WAVEFORMATEX* GetFormat();
/*
WAVEFORMATEX* GetFormat()
{
return m_pwfx;
};
*/
: dans sdkwavefile.cpp on écrit la fonction
WAVEFORMATEX* CWaveFile::GetFormat()
{
return m_pwfx;
};
***** Il faut connaitre la taille a réservé en pile pour le fonctionnement de la classe.
en c++ le code "CWaveFile wave" initialyse la classe
on desassemble le code source cl /Fa et on cherche la déclaration
de la variable wave qui nous donne sa taille.
**** au link,on ne peut utiliser que des objets .obj.
Le code fonctionne si on se lie a une librairie mais ...
Il se produit un échec a l'exit dans la crt et le programme reste en mémoire.
------- références directx --------
Samples\C++\DXUT\Optional les classes sont içi
Samples\C++\XAudio2\XAudio2BasicSound exemple réécrit en masm
------- recompiler le source ----------
Vous aurez besoin des headers sdk disponible sur mon site
les headers directx traduits sont inclus dans le zip et le directx sdk n'est peut-être
pas absolument nécessaire.
J'ai compilé le total avec ml 10 du c++ express 10 et les librairies du windows sdk 7
Modifier le chemin du .wav utilisé,un autre peut convenir (mono)
--- c'est un prototype,le code n'est pas très bien léché --
--- il manque justes quelques déclarations et une macro pour le rendre plus lisible--