Utiliser des class c++ avec masm directx xaudio2basicsound

Description

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--

Conclusion :


permet d'utiliser les class c++

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.