PlaySoundFileでは再生できるのに
LoadSoundMemで読み込むと -1 が返ってくるWAVファイルがあります。(数十kB、1秒程度の効果音、無圧縮WAV)
調べると
LoadSoundMem("xxxxx.wav"); つまりデフォルトのバッファ数 = 3で読み込むと -1 が返ります。
LoadSoundMem("xxxxx.wav", 1); にするとハンドルを取得でき、音も鳴るのですが、
このハンドルをDuplicateSoundMemすると -1 が返ります。
なお、DxLibのソースで
DxSoundWin.cpp ---> SoundBuffer_Lock_PF() の
if( Buffer->PF.DSBuffer->Lock( WritePos, WriteSize, LockPos1, LockSize1, LockPos2, LockSize2, 0 ) != D_DS_OK )
を
if( Buffer->PF.DSBuffer->Lock( WritePos, WriteSize, LockPos1, LockSize1, LockPos2, LockSize2, 2 ) != D_DS_OK )
つまり 0 ---> DSBLOCK_ENTIREBUFFER にすればバッファ数 = 3でも読み込め、DuplicateSoundMemも使用できましたが、
(1 ... DSBLOCK_FROMWRITECURSOR ではエラー)