DirectSound を使ったプロジェクトに取り組んでおり、サウンド ファイルのヘッダー情報が処理メソッドに渡されるようにしようとしています。WAV ファイルには、先頭に RIFF チャンク ID があります。ProcessWaveFile メソッドの呼び出しでは、ファイルパスとヘッダー情報を渡します。「RIFF」チャンク ID は char に格納されます。ファイルが正しいことを確認するために、実際のファイルのチャンク ID に対してチャンク ID の個々の文字をチェックできる必要があります。これは私のコードのスニペットです:
if((waveFileHeader.chunkId[0] != chunkID[0]) || (waveFileHeader.chunkId[1] != chunkID[1]) ||
(waveFileHeader.chunkId[2] != chunkID[2]) || (waveFileHeader.chunkId[3] != chunkID[3]))
{
MessageBox(hwnd, L"ChunkID not in the right Format.", L"Error", MB_OK);
return false;
}
chunkId はファイルの実際の ID であり、chunkID はチェックする関数を介して渡される ID です。ご覧のとおり、ここでは配列のように処理しようとしています。chunkId は char[] に格納されます。チャンクIDも配列に保存する必要がありますか? どのように指定しますか?
bool ProcessWaveFile(char*, IDirectSoundBuffer8**, HWND, int, char, char, char, char, std::string, int, int);
上記は、ProcessWaveFile メソッドのヘッダー ファイル行です。チャンク ID は文字の 1 つとして指定されます。char[] に変更することもできますが、実際にメソッドを呼び出すときに問題が発生します。呼び出しの例を次に示します。
result1 = ProcessWaveFile("../terrain_sky/data/sound01.wav", &m_secondaryBuffer1, hwnd,
44100, 'RIFF', 'fmt ', 'WAVE', 'data', "WAVE_PCM_FORMAT", 16, 2);
変数のチェーンを中断することなく、この呼び出しで RIFF を含む配列値を宣言するにはどうすればよいですか?