Toon posts:

[C++] DirectSound Buffer->Lock Error

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo Iedereen,

Ik hoop dat jullie mij kunnen helpen met mijn probleem. Op dit moment ben ik bezig met een project dat gebruik maakt van Direct Sound. Ik moet een wave file afspelen, en vanwege toekomstige ontwikkelingen doe ik dat met DirectSound.

Ik gebruik 3D buffers en het extende waveformat. Alle initialisatie gaat goed en zonder errors. Als ik probeer de buffer te locken geeft die functie echter de waarde DSERRPRIOLEVELNEEDED terug. Ik heb de output van de SetCooperativeLevel gecontroleerd en dat is gewoon DS_OK.

De code van deze functies ziet er als volgt uit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
MainhWnd = GetSafeHwnd();
hr = m_pDS->SetCooperativeLevel(MainhWnd, DSSCL_NORMAL);

....

VOID* pbData = NULL;
VOID* pbData2 = NULL;
DWORD dwLength;
DWORD dwLength2;
int lPos=0;
DWORD m_dwBufferBytes;

hr= m_pDSBuffer->Lock(lPos, m_dwBufferBytes, &pbData, &dwLength, &pbData2, &dwLength2, 0);


Weet iemand wat het probleem kan zijn, of hoe ik dit probleem kan oplossen?

Bij voorbaat dank,

Miep

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

lock je de primary of de secondary buffer? Ik geloof dat je om de primary buffer te kunnen locken exclusive cooperative level nodig hebt

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Ik lock de secondary buffer, maar zelfs als ik de prioriteit op exclusive zet, en ook de SetFormat functie gebruik blijf ik hetzelfde probleem houden. Ook een wisseling van window handle (naar ander window) heeft absoluut geen effect op de uitkomst van de functie.