Мой вопрос, как правило, о том, как поведение Замок а также отпереть Метод DirectSoundBuffer8 нравится.
У меня есть что-то вроде этого:
unsigned char *bufferPtr;
result = ((IDirectSoundBuffer8*)dsb)->Lock(0,size,(void**)&bufferPtr,(DWORD*)&size, NULL, 0, 0);
if(FAILED(result)) {
return;
}
memcpy(bufferPtr, waveData, size);
result = ((IDirectSoundBuffer8*)dsb)->Unlock((void*)bufferPtr, size, NULL, 0);
if(FAILED(result)) {
return;
}
delete[] bufferPtr;
Должен ли я действительно делать delete[] bufferPtr;
даже если это не сделано с new
?
Я компилирую свою программу, используя mingw. 32-битный работает нормально с delete[] bufferPtr;
но в 64-битной сборке происходит сбой.
Надеюсь, кто-то может просветить меня. Заранее спасибо!
Нет, вам абсолютно не нужно делать delete[] bufferPtr
, Вам не принадлежит эта память, и как только вы позвонили Unlock
Ваш указатель на него больше не действителен.