36 #include "../../../Primitives/interface/CommonDefinitions.h"
38 #if PLATFORM_UNIVERSAL_WINDOWS
39 # include "../../../Common/interface/StringTools.hpp"
49 inline FARPROC
LoadEngineDll(const
char* EngineName, const
char* GetFactoryFuncName)
51 const size_t StringBufferSize = 4096;
52 char* LibName = (
char*)malloc(StringBufferSize);
53 FARPROC GetFactoryFunc = NULL;
54 HMODULE hModule = NULL;
58 const char* Arch =
"_64";
60 const char* Arch =
"_32";
64 const char* Conf =
"d";
66 const char* Conf =
"r";
69 sprintf_s(LibName, StringBufferSize,
"%s%s%s.dll", EngineName, Arch, Conf);
72 hModule = LoadLibraryA(LibName);
73 #elif PLATFORM_UNIVERSAL_WINDOWS
74 hModule = LoadPackagedLibrary(
WidenString(LibName).c_str(), 0);
76 # error Unexpected platform
82 printf(
"Failed to load %s library.\n", LibName);
83 OutputDebugStringA(
"Failed to load engine DLL");
88 GetFactoryFunc = GetProcAddress(hModule, GetFactoryFuncName);
89 if (GetFactoryFunc == NULL)
91 printf(
"Failed to load %s function from %s library.\n", GetFactoryFuncName, LibName);
92 OutputDebugStringA(
"Failed to load engine factory function from library");
97 return GetFactoryFunc;