Community Q&A

Welcome to Audiokinetic’s community-driven Q&A forum. This is the place where Wwise and Strata users help each other out. For direct help from our team, please use the Support Tickets page. To report a bug, use the Bug Report option in the Audiokinetic Launcher. (Note that Bug Reports submitted to the Q&A forum will be rejected. Using our dedicated Bug Report system ensures your report is seen by the right people and has the best chance of being fixed.)

To get the best answers quickly, follow these tips when posting a question:

  • Be Specific: What are you trying to achieve, or what specific issue are you running into?
  • Include Key Details: Include details like your Wwise and game engine versions, operating system, etc.
  • Explain What You've Tried: Let others know what troubleshooting steps you've already taken.
  • Focus on the Facts: Describe the technical facts of your issue. Focusing on the problem helps others find a solution quickly.

+2 votes
Hello everyone,

 

I am trying to integrate wwise into our windows 8.1 project. and keep getting the same errors.We are using Visual Studio 2015.

I have set the additinal lib directory to Wwise v2015.1.5 build 5533\SDK\Win32_vc120\Debug\lib

I have also set the additional include directory to Wwise v2015.1.5 build 5533\SDK\include

Our platform tool set is set to Visual Studio 2013(v120)

Everything compiles fine. But the moment I call AK::MemoryMgr::init(someval); All hell brokes and I endup with the following 6 errors

 

2>AkSoundEngine.lib(AkLEngine.obj) : error LNK2019: unresolved external symbol __imp__RegisterDeviceNotificationW@12 referenced in function "private: static void __cdecl CAkLEngine::RegisterDeviceChange(void)" (?RegisterDeviceChange@CAkLEngine@@CAXXZ)
2>AkSoundEngine.lib(AkLEngine.obj) : error LNK2019: unresolved external symbol __imp__UnregisterDeviceNotification@4 referenced in function "private: static void __cdecl CAkLEngine::UnregisterDeviceChange(void)" (?UnregisterDeviceChange@CAkLEngine@@CAXXZ)
2>AkSoundEngine.lib(AkLEngine.obj) : error LNK2019: unresolved external symbol __imp__CallWindowProcW@20 referenced in function "private: static long __stdcall CAkLEngine::InternalWindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?InternalWindowProc@CAkLEngine@@CGJPAUHWND__@@IIJ@Z)
2>AkSoundEngine.lib(AkLEngine.obj) : error LNK2019: unresolved external symbol __imp__GetForegroundWindow@0 referenced in function "public: static void __cdecl CAkLEngine::GetDefaultPlatformInitSettings(struct AkPlatformInitSettings &)" (?GetDefaultPlatformInitSettings@CAkLEngine@@SAXAAUAkPlatformInitSettings@@@Z)
2>AkSoundEngine.lib(AkLEngine.obj) : error LNK2019: unresolved external symbol __imp__GetWindowLongW@8 referenced in function "private: static void __cdecl CAkLEngine::UnregisterDeviceChange(void)" (?UnregisterDeviceChange@CAkLEngine@@CAXXZ)
2>AkSoundEngine.lib(AkLEngine.obj) : error LNK2019: unresolved external symbol __imp__SetWindowLongW@12 referenced in function "private: static void __cdecl CAkLEngine::RegisterDeviceChange(void)" (?RegisterDeviceChange@CAkLEngine@@CAXXZ)

I am wondering if I am using the correct lib files (Win32_vc120). I have also tried to use (Metro_Win32_vc120) libs but they also bring up some other linking errors. I hope some one could help us on this as we are literally stuck on this issue.

Thank you in advance!
in General Discussion by Yucel K. (180 points)

1 Answer

+1 vote

Ok Just managed to solve the problem! On this occasion the reason I was having these errors was because i was using wrong lib files. I was using the Win32 libs. which in fact it should have been Metro_Win32 since I am doing a windows 8.1 app.  Previously what made me confused is that when i added the correct libs, I was still getting bunch of errors Here is some of it. I managed to solve that problem too by adding the functions within the threadEmulation name space into the AK name space. I am not sure if this is a correct way of doing it but if someone knows a proper way of doing it please do let me know. Followings were the errors i was getting.

2>AkStreamMgr.lib(AkIOThread.obj) : error LNK2001: unresolved external symbol "void * __stdcall AK::ThreadEmulation::CreateThread(unsigned long (__stdcall*)(void *),void *,unsigned long)" (?CreateThread@ThreadEmulation@AK@@YGPAXP6GKPAX@Z0K@Z)
2>AkSoundEngine.lib(AkMonitor.obj) : error LNK2001: unresolved external symbol "void * __stdcall AK::ThreadEmulation::CreateThread(unsigned long (__stdcall*)(void *),void *,unsigned long)" (?CreateThread@ThreadEmulation@AK@@YGPAXP6GKPAX@Z0K@Z)
2>AkSoundEngine.lib(AkLEngine_Common.obj) : error LNK2001: unresolved external symbol "void * __stdcall AK::ThreadEmulation::CreateThread(unsigned long (__stdcall*)(void *),void *,unsigned long)" (?CreateThread@ThreadEmulation@AK@@YGPAXP6GKPAX@Z0K@Z)
2>AkSoundEngine.lib(AkThreadedBankMgr.obj) : error LNK2001: unresolved external symbol "void * __stdcall AK::ThreadEmulation::CreateThread(unsigned long (__stdcall*)(void *),void *,unsigned long)" (?CreateThread@ThreadEmulation@AK@@YGPAXP6GKPAX@Z0K@Z)
2>AkSoundEngine.lib(AkAudioThread.obj) : error LNK2001: unresolved external symbol "void * __stdcall AK::ThreadEmulation::CreateThread(unsigned long (__stdcall*)(void *),void *,unsigned long)" (?CreateThread@ThreadEmulation@AK@@YGPAXP6GKPAX@Z0K@Z)
2>AkSoundEngine.lib(AkAudioMgr.obj) : error LNK2019: unresolved external symbol "void __stdcall AK::ThreadEmulation::Sleep(unsigned long)" (?Sleep@ThreadEmulation@AK@@YGXK@Z) referenced in function "void __cdecl AKPLATFORM::AkSleep(unsigned long)" (?AkSleep@AKPLATFORM@@YAXK@Z)
2>AkSoundEngine.lib(AkLEngine_Common.obj) : error LNK2001: unresolved external symbol "void __stdcall AK::ThreadEmulation::Sleep(unsigned long)" (?Sleep@ThreadEmulation@AK@@YGXK@Z)
2>AkStreamMgr.lib(AkIOThread.obj) : error LNK2019: unresolved external symbol "void __stdcall AK::ThreadEmulation::SleepEx(unsigned long,int)" (?SleepEx@ThreadEmulation@AK@@YGXKH@Z) referenced in function "protected: static unsigned long __stdcall AK::StreamMgr::CAkIOThread::IOSchedThread(void *)" (?IOSchedThread@CAkIOThread@StreamMgr@AK@@KGKPAX@Z)
2>C:\SkyfishProjects\Cocos2d\projects\elise1.0.3\elise\proj.win8.1-universal\Debug\elise.Windows\elise.Windows.exe : fatal error LNK1120: 3 unresolved externals

EDIT: I think I managed to get things done in a way it suppose to. If you are like me and if you keep getting unresolved externals errors on ThreadEmulation on windows 8.1. Just add the following code into your wwise integration class cpp file.

  #define AK_IMPLEMENT_THREAD_EMULATION
#include <AK/Tools/Win32/ThreadEmulation.h>


Note that it has to be before the #include your_wwise_Integration_class.h. 

by Yucel K. (180 points)
edited by Yucel K.
...