ページ 1 / 1
音声データの読み込み
Posted: 2013年3月18日(月) 17:43
by kinder
こんばんは。
media\\sound\\voice\\にあるCH00VO00~CH00VO20までの音声データをロードしたいのですが、
アクセス違反が起こってしまいます。どうすればいいでしょうか・・。
コード:
for(int i=0;i<21;i++){
char *string = "media\\sound\\voice\\CH00VO";
strcat(string, (char*)i);
strcat(string,".wav");
CH00VO[i]= LoadSoundMem(string);
}
Re: 音声データの読み込み
Posted: 2013年3月18日(月) 18:03
by h2so5
strcatの使い方がおかしいですね。
snprintfを使ったほうが簡単だと思います。
コード:
for(int i=0;i<21;i++){
const char *common_path = "media\\sound\\voice\\CH00VO";
char string[256];
snprintf(string, sizeof(string), "%s%02d.wav", common_path, i);
CH00VO[i]= LoadSoundMem(string);
}
Re: 音声データの読み込み
Posted: 2013年3月18日(月) 18:23
by kinder
返信ありがとうございます。
書いていただいたコードでやってみたら、下記のログ?が出たのですがアクセス違反はでなくなり、プログラムも実行されました。
このログは無視で良いのでしょうか・・
warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
'_snprintf' の宣言を確認してください。
Re: 音声データの読み込み
Posted: 2013年3月18日(月) 18:34
by みけCAT
多分wsprintfを使えば大丈夫ではないでしょうか?
コード:
wsprintf(string, "%s%02d.wav", common_path, i);
無視でもいいです。
Re: 音声データの読み込み
Posted: 2013年3月18日(月) 18:44
by kinder
wsprintf(string, "%s%02d.wav", common_path, i);
を使ったら何の問題も無くできました!
お二人ともありがとうございました!
コード:
for(int i=0;i<21;i++){
const char *common_path = "media\\sound\\voice\\CH00VO";
char string[256];
wsprintf(string, "%s%02d.wav", common_path, i);
CH00VO[i]= LoadSoundMem(string);
}