Проблема с памятью для метода Lock() из DirectSound

Рейтинг: 1Ответов: 0Опубликовано: 06.11.2014

Здравствуйте.

Как видно из заголовка, у меня проблема с методом 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.

Ответы

Ответов пока нет.