0

当我从 2010 年 6 月的 SDK 中实现 XAudio2Sound3D 示例时。我几乎将它全部复制到我自己的框架中,并且这个变量(sound3DInstance)显示为未解析的外部:X3DAudioCalculate( sound3DInstance , &listener, &emitter, calcFlags, &dspSettings); X3DAudioInitialize(details.OutputFormat.dwChannelMask, SPEEDOFSOUND, sound3DInstance ); 其中变量类型是:

X3DAUDIO_HANDLE sound3DInstance;
X3DAUDIO_LISTENER listener;
X3DAUDIO_EMITTER emitter;
X3DAUDIO_DSP_SETTINGS dspSettings;
DWORD calcFlags = X3DAUDIO_CALCULATE_MATRIX | X3DAUDIO_CALCULATE_DOPPLER | X3DAUDIO_CALCULATE_LPF_DIRECT | X3DAUDIO_CALCULATE_LPF_REVERB | X3DAUDIO_CALCULATE_REVERB;
const float SPEEDOFSOUND = X3DAUDIO_SPEED_OF_SOUND;
XAUDIO2_DEVICE_DETAILS details;

现在,两个函数中唯一显示错误的公共变量是sound3DInstance,所以这一定是问题所在。在 SDK 示例中,所有变量都放在一个名为 *AUDIO_STATE* 的结构中,并且在程序的初始化中,它们调用: *ZeroMemory( &g_audioState, sizeof( AUDIO_STATE ) );* 在我的代码中,变量是我的 Sound 类的成员,我只是将它们一一清零,所以效果不应该是一样的吗?

4

1 回答 1

0

您没有将您的程序与 XAudio 库 (Xaudio2.lib) 链接起来。检查项目的链接器设置。

于 2012-08-25T16:50:48.913 回答