ohtawaのプロフィール

@ohtawa ohtawa
ありがとう数26
質問数3
回答数53
ベストアンサー数
9
ベストアンサー率
23%
お礼率
25%

  • 登録日2007/08/26
  • win32 mciについて

    WindowsVISTA 32bit にて Microsoft Visual C++ 2008を使い ゲームを作成しています。 mciSendCommandでBGMを鳴らし、PlaySoundで効果音を鳴らしています。 上記WindowsVISTA 32bitでは正常に動作しています。 ただ、Windows7 64bitで動作させると効果音が何度目かの再生の時に タイムラグが発生してwindowsも一時的に止まってしまいます。 このとき、BGMは鳴っていますが、タイムラグが解消しプログラムに 戻るとき一瞬BGMがとまります。 タイムラグの長さは0.5秒から3秒ほどで、頻度はすぐに発生することもあり、 数十回再生後に発生することもあります。 mciSendCommandはファイルからですが、 PlaySoundはファイルからでも、メモリからでも症状は同じです。 リソースはまだためしてはいません。 また、 mciSendCommandを使ってBGMを2回以上ミキシングしても 何回目かの再生で同じ症状が出ますし、 BGMをメモリにおいてPlaySoundで鳴らし、効果音をmciSendCommandで ファイルから鳴らしても何度目かで同じ症状が出ます。 プログラム実行後にSleepやタイマーで2/100秒ほどのウェイトを入れると 少し軽減されるようですが症状は出ます。 64bitOSがMCIをサポートしないというのをネット上で見ましたが、 何か対処の方法はないでしょうか? どなたかご存知の方いらっしゃれば教えてください。

  • C言語で音声ファイル再生

    C言語で音声ファイルを再生することが出来るでしょうか?必要なヘッダーファイルと関数を教えてもらえるとうれしいです。

    • noname#218392
    • 回答数3
  • このサイトで、中国語の質問をしたいのですが。。。

    このサイトで、簡体字を入力したいのですが、どうすればできますか。

    • noname#145744
    • 回答数5
  • fatal error LNK1112

    fatal error LNK1112: モジュールのコンピューターの種類 'X86' は対象コンピューターの種類 'x64' と競合しています。 というエラーが出てコンパイルが出来ないのですが、どうすればコンパイル出来るでしょうか 当方の環境は以下のとおりです win7 64bit VC++ 2010 Express

  • VC++、MFCでSDIでアプリ作成中

    現在、VC++、MFCでSDIでアプリ作成中です。 アイコン上にファイル(txtファイル)をドラッグ&ドロップしてメモ帳を起動したいです。 ただ、ドロップされたファイルはうまく読み込めるのですが、そのファイルを開く(表示)することができません。 ドロップされたファイルは、C○○View.cppで int C○○View::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: この位置に固有の作成用コードを追加してください CStringArray argv; if( IsDropOnIcon( &argv, TRUE ) ){ int i; for( i = 0; i < argv.GetCount(); i++ ){ MessageBox( argv[ i ], "ドロップされたファイルは", MB_OK ); Read(argv[i]); } } } BOOL C○○View::IsDropOnIcon( CStringArray* argv, BOOL acceptFolder ) { CString cmdlin = ""; CString resToken; char* p; int startnum = 0; p = AfxGetApp()->m_lpCmdLine; if( strlen( p ) == 0 || p[ 0 ] == '-') return FALSE; cmdlin = p; resToken= cmdlin.Tokenize( "\"", startnum ); while( resToken != "" ){ if( resToken != " " && IsExist( resToken, acceptFolder ) ) argv->Add( resToken ); resToken= cmdlin.Tokenize( "\"", startnum ); }; return TRUE; } /* 引数で貰った文字列がファイルかどうかをチェック */ BOOL C○○View::IsExist( CString filepath, BOOL acceptFolder) { CFile fp; if( fp.Open( filepath, CFile::modeRead ) ){ fp.Close(); return TRUE; } return FALSE; } のargv[i]で取得しています。 これが、Read(arg[i])でうまく読み込めません。 ちなみにRead(CString filename)は正しく動くことは確認済みです。 Read(arg[i])を入れる場所がOnCreateがいけないとは思うのですが、どのタイミングで 読み込めばいいかがわかりません。 どなたか教えて頂けないでしょうか?