Hello. I'm a new Wwise user, and I'm trying to integrate Wwise in a C++ game engine project of my own.
I started following the documentation in the webpage, but I've encountered a problem I can't solve by myself.
When I tried to call AK::MemoryMgr::Init to initialize the Memory Manager, 147 errors appears on the output console. Most of them, unresolved externals from AkMemoryMgr.lib, or AkSoundEngine.lib.
I guess that there is some library missing in my includes, but I re-read carefully the documentation, and I can't found what exactly is causing all of these errors.
Also, I checked the Integration Demo, and I have the same exact includes.
Possibly, the include order is wrong, or I have skipped some configuration in my VS project. Whatever it is, I can't find it by myself.
I'm using Visual Studio 2017. I have made a separate file for the includes, and another for the audio module I will use.
The include_wwise.h:
-------------------------------------------------
#ifndef _INCLUDE_WWISE_H_
#define _INCLUDE_WWISE_H_
#include <AK/SoundEngine/Common/AkTypes.h>
#include <AK/SoundEngine/Common/AkSoundEngine.h>
#include <AK/MusicEngine/Common/AkMusicEngine.h>
#include <AK/SoundEngine/Common/AkMemoryMgr.h>
#include <AK/SoundEngine/Common/AkModule.h>
#include <AK/SoundEngine/Common/AkStreamMgrModule.h>
#include <AK/Tools/Common/AkPlatformFuncs.h>
//#define AK_OPTIMIZED
#ifdef AK_OPTIMIZED
#pragma comment( lib, "3DEngine/Audiokinetic/Release/lib/AkSoundEngine.lib")
#pragma comment( lib, "3DEngine/Audiokinetic/Release/lib/AkMusicEngine.lib")
#pragma comment( lib, "3DEngine/Audiokinetic/Release/lib/AkMemoryMgr.lib")
#pragma comment( lib, "3DEngine/Audiokinetic/Release/lib/AkStreamMgr.lib")
#else
#pragma comment( lib, "3DEngine/Audiokinetic/Debug/lib/AkSoundEngine.lib")
#pragma comment( lib, "3DEngine/Audiokinetic/Debug/lib/AkMusicEngine.lib")
#pragma comment( lib, "3DEngine/Audiokinetic/Debug/lib/AkMemoryMgr.lib")
#pragma comment( lib, "3DEngine/Audiokinetic/Debug/lib/AkStreamMgr.lib")
#endif
#pragma comment( lib, "3DEngine/Audiokinetic/dinput8.lib")
#pragma comment( lib, "3DEngine/Audiokinetic/dsound.lib")
#pragma comment( lib, "3DEngine/Audiokinetic/dxguid.lib")
#ifndef AK_OPTIMIZED
#include <AK/Comm/AkCommunication.h>
#pragma comment( lib, "3DEngine/Audiokinetic/Debug/lib/CommunicationCentral.lib")
#pragma comment( lib, "3DEngine/Audiokinetic/ws2_32.lib")
#endif
namespace AK
{
#ifdef WIN32
void * AllocHook(size_t in_size);
void FreeHook(void * in_ptr);
void * VirtualAllocHook(void * in_pMemAddress, size_t in_size, DWORD in_dwAllocationType, DWORD in_dwProtect);
void VirtualFreeHook(void * in_pMemAddress, size_t in_size, DWORD in_dwFreeType);
#endif
}
#endif
The include_wwise.cpp:
-------------------------------------------
#include "include_wwise.h"
namespace AK
{
void * AllocHook(size_t in_size)
{
return malloc(in_size);
}
void FreeHook(void * in_ptr)
{
free(in_ptr);
}
void * VirtualAllocHook(
void * in_pMemAddress,
size_t in_size,
DWORD in_dwAllocationType,
DWORD in_dwProtect
)
{
return VirtualAlloc(in_pMemAddress, in_size, in_dwAllocationType, in_dwProtect);
}
void VirtualFreeHook(
void * in_pMemAddress,
size_t in_size,
DWORD in_dwFreeType
)
{
VirtualFree(in_pMemAddress, in_size, in_dwFreeType);
}
}
My own module .h:
------------------------------------------------------
#ifndef _WISHED_H_
#define _WISHED_H_
namespace Wwished
{
bool InitWwished();
}
#endif
My own module .cpp:
------------------------------------------------------
#include "wwished.h"
#include "include_wwise.h"
#include <assert.h>
bool Wwished::InitWwished()
{
bool ret = true;
//Init default Wwise memory manager
AkMemSettings memSettings;
memSettings.uMaxNumPools = 20;
if (AK::MemoryMgr::Init(&memSettings) != AK_Success)
{
assert(!"Could not create the memory manager.");
return false;
}
return ret;
}
Any help will be welcome.
Thanks.