C++ DirectSoundBuffer8::锁定/解锁

C++ DirectSoundBuffer8::锁定/解锁,c++,winapi,mingw32,mingw-w64,directsound,C++,Winapi,Mingw32,Mingw W64,Directsound,我的问题通常是关于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);

我的问题通常是关于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即使它不是用
新建的

我用mingw编译我的程序。32位与
delete[]bufferPtr一起正常运行但是在64位构建中,它崩溃了


希望有人能启发我。提前谢谢

不,您完全不必执行
delete[]bufferPtr
。您不拥有该内存,一旦调用了
Unlock
,指向它的指针就不再有效