• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:XAudio2がNULLになってしまう)

XAudio2がNULLになってしまう

このQ&Aのポイント
  • DontacosM2と申します。現在、DirectXを使用してゲームアプリケーションの制作を行っています。友人に渡した実行ファイルでXAudio2がNULLになり、サウンドが鳴らない不具合が発生しています。
  • XAudio2の初期化部分のソースコードを提供しており、自分のPCでは正常に動作するため、初期化部分に問題はないと考えています。
  • 構築環境として、DirectX SDKはAugust2009、Visual C++ 2008 Expressを使用しており、友人のPCにはSDKは入っておらず、最新のランタイムを利用しています。環境によってXAudio2Createが正常に動作しない可能性があるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

はじめまして。 考えられるのは、 ・友人PCにコンポーネントが入っていない。(DXが最新でない、壊れている等の可能性) ・友人PCにデバッグコンポーネントが入ってないのに、XAUDIO2_DEBUG_ENGINEを指定してしまっている。 ぐらいではないでしょうか。 多少参考になりますので、HRESULTの値は確認しておくべきだと思います。

DontacosM2
質問者

お礼

Alyssa_Art さん、ご回答ありがとうございます。 ご指摘通り HRESULT の値を確認したところ直接的な原因では無いものの 糸口となるエラーが確認できました。 吐き出されているエラーは  「アクティブ化コンテキストがアクティブでない」 という内容で、情報を探したところ Visual C++ 2008 Express のランタイムライブラリの設定に問題があるのでは? という部分にたどり着きました。  プロジェクトのプロパティ → 構成プロパティ → C/C++ → コード生成 上記項目のランタイムライブラリを「マルチスレッド(/MT)」に変更 この状態で、Releaseコンパイルを行い作成した.exeを友人PCで実行したところ エラー無く起動し、サウンドの再生が行われました。 Express Edition 2005等では、ランタイムライブラリが「マルチスレッドデバッグDLL」や 「マルチスレッドDLL」となっていると配布先で上手く起動できないという問題があったようで 2008 でもこれに近いものがあるようです。 当初の「サウンドが鳴らない」に関しては解決しましたが、根本解決としていいかどうか、もう少し調べてみようと思います。 解決の糸口を提示して頂き、ありがとうございました(^-^)