Game Development Community

XAudio errors in TGEA 1.8.1

by Andy Hawkins · in Torque Game Engine Advanced · 02/14/2009 (10:07 pm) · 3 replies

I'm getting these errors when compiling TGEA 1.8.1 with VCExpress 2005.

Anyone know how to fix this?

d:TorqueTGEA_1_8_1enginesourcesfx/xaudio/sfxXAudioDevice.h(50) : error C2146: syntax error : missing ';' before identifier 'mMasterVoiceDetails'
1>d:TorqueTGEA_1_8_1enginesourcesfx/xaudio/sfxXAudioDevice.h(50) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:TorqueTGEA_1_8_1enginesourcesfx/xaudio/sfxXAudioDevice.h(50) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>sfxXAudioProvider.cpp
1>d:TorqueTGEA_1_8_1enginesourcesfx/xaudio/sfxXAudioDevice.h(50) : error C2146: syntax error : missing ';' before identifier 'mMasterVoiceDetails'
1>d:TorqueTGEA_1_8_1enginesourcesfx/xaudio/sfxXAudioDevice.h(50) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:TorqueTGEA_1_8_1enginesourcesfx/xaudio/sfxXAudioDevice.h(50) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>..........enginesourcesfxxaudiosfxXAudioProvider.cpp(127) : error C2664: 'XAudio2Create' : cannot convert parameter 3 from 'XAUDIO2_WINDOWS_PROCESSOR_SPECIFIER' to 'IXAudio2EngineCallback *'
1>        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>sfxXAudioDevice.cpp
1>d:TorqueTGEA_1_8_1enginesourcesfx/xaudio/sfxXAudioDevice.h(50) : error C2146: syntax error : missing ';' before identifier 'mMasterVoiceDetails'
1>d:TorqueTGEA_1_8_1enginesourcesfx/xaudio/sfxXAudioDevice.h(50) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:TorqueTGEA_1_8_1enginesourcesfx/xaudio/sfxXAudioDevice.h(50) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>..........enginesourcesfxxaudiosfxXAudioDevice.cpp(50) : error C2039: 'GetVoiceDetails' : is not a member of 'IXAudio2MasteringVoice'
1>        C:Program FilesMicrosoft DirectX SDK (August 2007)Includexaudio2.h(777) : see declaration of 'IXAudio2MasteringVoice'
1>..........enginesourcesfxxaudiosfxXAudioDevice.cpp(50) : error C2065: 'mMasterVoiceDetails' : undeclared identifier
1>..........enginesourcesfxxaudiosfxXAudioDevice.cpp(135) : error C2228: left of '.InputChannels' must have class/struct/union
1>        type is ''unknown-type''
1>..........enginesourcesfxxaudiosfxXAudioDevice.cpp(187) : error C2228: left of '.InputChannels' must have class/struct/union
1>        type is ''unknown-type''

Also I'm getting this include problem

1>..........enginesourceplatformWin32videoInfowmiVideoInfo.cpp(4) : fatal error C1083: Cannot open include file: 'wbemidl.h': No such file or directory

Hope you can help

#1
02/15/2009 (6:56 am)
Figured it out.

1. Install Windows DirectX SDK Nov 2008 and use those directories
2. Move SDK paths up about C++ paths for includes


I also got this error...
rpcndr.h(33) : fatal error C1189: #error :  incorrect <rpcndr.h> version. Use the header that matches with the MIDL compiler.

..and fixed it by right clicking on the Stronghold object in the Solutions Explorer-> Properties ->Linker->General->Additional Library Directories and then added the Windows SDK include on top of all the others. This seems to be a Windows Vista issue.
#2
02/23/2009 (3:42 pm)
Thanks a lot for this fix. I just upgraded (today) to TGEA and I wanted to move some changes I made to TGE to TGEA and I got those same erros. Thanks again.
#3
02/23/2009 (4:28 pm)
The NOV 08 DirectX SDK is actually a bad move.

Quoted from the TDN TGEa Porting Gotchas Page:
Quote:There was a bug in the shader compiler in the November 2008 DirectX SDK (as referenced in this GarageGames forum thread: TGEA 1.7.1 and DirectX Nov. 2008 - broken ). A workaround was added for it that is specific to the Nov 2008 DXSDK (also detailed in that thread).

However, we recommend you stick with the August 2008 DXSDK (also linked in that thread). Our contacts at Microsoft informed us the bug report was recorded and should be fixed in the March 2009 DirectX SDK.

EDIT: I use VS 2008 Express and haven't had any problems.