Я пытаюсь интегрировать aws простой сервис очереди (sqs) в проект Unreal Engine. Я собрал весь aws c ++ sdk из исходного кода github, следуя документации. Мои параметры сборки приведены ниже:
cmake .. -G "Visual Studio 15 Win64" -DCMAKE_BUILD_TYPE=Debug -DUSE_WINDOWS_DLL_SEMATICS=ON -DUSE_IMPORT_EXPORT=ON
"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe" INSTALL.vcxproj /p:Configuration=Debug
Связаны все необходимые библиотеки с проектом UE:
// These macros are necessary for the aws
Definitions.Add("USE_IMPORT_EXPORT");
Definitions.Add("USE_WINDOWS_DLL_SEMANTICS");
PublicAdditionalLibraries.Add(Path.Combine(libDirectory, "aws", "aws-cpp-sdk-core.lib"));
PublicAdditionalLibraries.Add(Path.Combine(libDirectory, "aws", "aws-c-event-stream.lib"));
PublicAdditionalLibraries.Add(Path.Combine(libDirectory, "aws", "aws-checksums.lib"));
PublicAdditionalLibraries.Add(Path.Combine(libDirectory, "aws", "aws-c-common.lib"));
PublicAdditionalLibraries.Add(Path.Combine(libDirectory, "aws", "aws-cpp-sdk-sqs.lib"));
Проблема заключается в том, что я пытаюсь запустить простой код для получения сообщений, скопированных с aws c ++ пример страницы падает с нарушением прав доступа. Как вы можете видеть на рисунках ниже, в объекте ClientConfiguration имеется некоторая путаница.
picture1 picture2
Когда я запускаю этот же код с теми же DLL в новом проекте VS c ++ plain без Unreal Engine, он работает нормально. Я пробовал много вещей, таких как сборка aws sdk c ++ как stati c библиотеки. Также происходит сбой в другом месте при освобождении памяти внутри библиотеки aws.
Не знаю, в чем проблема? Это похоже на проблему с управлением памятью.
Весь тестируемый проект UE с aws libs: https://drive.google.com/file/d/1U1Pknx6Mx48NN9ULk_09aSysxM0FFjbg/view?usp=sharing
Буду очень признателен за любую помощь.
С уважением.
Петр