【发布时间】:2023-05-12 01:03:01
【问题描述】:
我的问题一般是关于 DirectSoundBuffer8 的 Lock 和 Unlock 方法的行为如何。
我有这样的事情:
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;
即使不是用new 制作的,我是否真的必须做delete[] bufferPtr;?
我使用 mingw 编译我的程序。 delete[] bufferPtr; 的 32 位运行正常,但在 64 位构建中,它会崩溃。
希望有人能启发我。提前致谢!
【问题讨论】:
标签: c++ winapi mingw32 mingw-w64 directsound