Questions et réponses de la communauté

Bienvenue sur le forum de questions et réponses d'Audiokinetic, propulsé par la communauté. C'est l'endroit où les utilisateurs de Wwise et Strata s'entraident. Pour obtenir une aide directe de notre équipe, veuillez utiliser la page « Tickets de soutien ». Pour signaler un bug, utilisez l'option Bug Report dans l'Audiokinetic Launcher. (Veuillez noter que les rapports de bug soumis au forum questions-réponses seront rejetés. L'utilisation de notre système de rapport de bug dédié garantit que votre rapport est vu par les bonnes personnes et a les meilleures chances d'être corrigé.)

Pour obtenir rapidement les meilleures réponses, suivez ces conseils lorsque vous posez une question :

  • Soyez précis : qu'essayez-vous de réaliser ou quel est le problème spécifique que vous rencontrez ?
  • Pensez à inclure les détails importants : incluez des détails tels que les versions de Wwise et du moteur de jeu, le système d'exploitation, etc.
  • Expliquez ce que vous avez essayé de faire : indiquez aux autres les mesures que vous avez déjà prises pour essayer de résoudre le problème.
  • Concentrez-vous sur les faits : décrivez les aspects techniques de votre problème. Se concentrer sur le problème aide les autres personnes à trouver rapidement une solution.

+1 vote
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.
fermée avec la mention: Problem solved
dans General Discussion par Carlos C. (110 points)
fermés par Carlos C.

1 Réponse

0 votes
Maybe you should check the path of the headers that the library is including in its own files.
par Roger B. (150 points)
...