Im trying to integrate the Amazon AWS Logging Services module into Unreal Engine 4. I already am making use of GameLift but would like to add CloudWatch logging as well.
The issue im having is producing a .dll from the AWS C++ SDK for their Logging Service.
Following their guide on how to produce the .dll in question i managed without errors. However attempting to integrate said .dll with Unreal is proving difficult.
After downloading the AWS C++ SDK files, i run the following 2 commands through Command Prompt with Administrator privileges.
cmake "LOCATIONONDISK" -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Release -DBUILD_ONLY="logs" -DBUILD_SHARED_LIBS=1 msbuild INSTALL.vcxproj /p:Configuration=Release
This produces the aws-cpp-sdk-logs.dll that im after. As well as a corresponding .lib file.
Ive created a Plugin in order to wrap the loading of this .dll file. My relevant Build.cs file for adding this is as follows.
// AWSLogs PublicAdditionalLibraries.Add(System.IO.Path.Combine(SDKDirectory, "aws-cpp-sdk-logs.lib")); PublicDelayLoadDLLs.Add("aws-cpp-sdk-logs.dll"); SDKLibWindows = System.IO.Path.Combine(SDKDirectory, "aws-cpp-sdk-logs.dll"); RuntimeDependencies.Add(SDKLibWindows);
Along with this in the Plugin Header/CPP im simply attempting to get the Handle to the .dll via the following (ive already checked, the directory and name is correct).
Handle = FPlatformProcess::GetDllHandle(*Path);
The Plugin and Project successfully compiles, however when i boot up the Editor im greeted with the following Error.
The Output log defines the following few entries.
'UE4Editor.exe' (Win32): Loaded 'F:\UnrealEngine\PROJECT_GENESIS\ProjectGenesis\Plugins\GameLiftLoggerSDK\Binaries\Win64\UE4Editor-GameLiftLoggerSDK.dll'. Symbols loaded. 'UE4Editor.exe' (Win32): Loaded 'F:\UnrealEngine\PROJECT_GENESIS\ProjectGenesis\Plugins\GameLiftLoggerSDK\Binaries\Win64\UE4Editor-AWSLogs.dll'. Symbols loaded. 'UE4Editor.exe' (Win32): Loaded 'F:\UnrealEngine\PROJECT_GENESIS\ProjectGenesis\Plugins\GameLiftLoggerSDK\ThirdParty\GameLiftLoggerSDK\Win64\aws-cpp-sdk-logs.dll'. Symbols loaded. Exception thrown at 0x00007FFF8565BF58 (ntdll.dll) in UE4Editor.exe: 0xC0000139: Entry Point Not Found. 'UE4Editor.exe' (Win32): Unloaded 'F:\UnrealEngine\PROJECT_GENESIS\ProjectGenesis\Plugins\GameLiftLoggerSDK\ThirdParty\GameLiftLoggerSDK\Win64\aws-cpp-sdk-logs.dll' [2019.10.28-04.37.26:840] 0]LogWindows: Failed to load '../../../../PROJECT_GENESIS/ProjectGenesis/Plugins/GameLiftLoggerSDK/ThirdParty/GameLiftLoggerSDK/Win64/aws-cpp-sdk-logs.dll' (GetLastError=127)
Why does it not have an Entrypoint? How can i rectify this? Is there something that im missing?