2010-06-01 22 views
0

J'ai une structure WAVEFORMATEX avec quelques codecdata à la fin de celle-ci (10 octets).WAVEFORMATEX - comment lire les codecdata à la fin?

J'utilise C++.

Comment accéder aux données à la fin? (Ceci est une question purement technique).

J'ai essayé:

WAVEFORMATEX* wav = (WAVEFORMATEX*)pmt->pbFormat; 
    WORD me = wav->cbSize; 
    wav = wav + sizeof(WAVEFORMATEX); 
    BYTE* arr = new BYTE[me]; 
    memcpy(arr, (BYTE*)wav, me); 

travail na pas.

Merci

Roey

Répondre

1

Vous avez fait une petite erreur dans l'arithmétique des pointeurs. Après

wav = wav + sizeof(WAVEFORMATEX); 

points de wav bien au-delà de la fin de la mémoire tampon (car wav n'est pas CHAR * mais WAVEFORMATEX *). Vous devez écrire:

wav = wav + 1; 
+0

Merci! Tu as raison. – Roey