Проблема с памятью для метода Lock() из DirectSound
Здравствуйте.
Как видно из заголовка, у меня проблема с методом Lock из библиотеки dsound. Материал для меня новый, беру его с этого сайта http://netlib.narod.ru/library/book0051/ch04_03.htm
При запуске метода Lock выдаёт ошибку:
exception access violation 0xc0000005
Просмотрел через дебагер, она возникает при передаче аргументов в саму функцию.
Вот код:
LPVOID Ptr1;
LPVOID Ptr2;
DWORD Size1, Size2;
// Блокируем буфер
pBuffer->Lock((DWORD)LockPos, (DWORD)Size, // Size = 36
&Ptr1, &Size1,
&Ptr2, &Size2, 0);
где pBuffer имеет тип IDirectSoundBuffer*
.
Что не так с указателями?
Вот прототип Lock():
HRESULT IDirectSoundBuffer::Lock (
DWORD WriteCursor,
DWORD WriteBytes,
LPVOID *Ptr1,
DWORD *Bytes1,
LPVOID *Ptr2,
DWORD *Bytes2,
DWORD Flags
);
Пользуюсь компилятором lcc-win32.
Источник: Stack Overflow на русском