/
spruttechnology
/
cam-api-examples
Обзор
Документация
Войти
/
spruttechnology
/
cam-api-examples
Код
Запросы
3
Задачи
Пакеты
0
Релизы
1
Аналитика
v19/develop
ExtensionUtility/ExtensionUtilityCpp/project/main/ExtensionManagerHelper.cpp
41 строка
1 KB
bond
Updated SDK version and build system version. Create a place for specification package dependency.
04 фев 2025, 16:29
04 фев 2025, 16:29
fbce780
Код
Авторство
О чём код?
#include "pch.h" #include "ExtensionManagerHelper.h" IExtensionManager* ExtensionManagerHelper::FExtensionManager = nullptr; void ExtensionManagerHelper::Initialize() { FExtensionManager = nullptr; } void ExtensionManagerHelper::Finalize() { FExtensionManager = nullptr; } IExtensionManager* ExtensionManagerHelper::GetInstance() { if (!FExtensionManager) { HMODULE handle = GetModuleHandleA("CAMAPI.ExtensionManager.dll"); if (!handle) { throw std::runtime_error("Error getting handle to CAMAPI.ExtensionManager.dll"); } using GetExtensionManagerDelegate = uintptr_t(*)(); GetExtensionManagerDelegate GetExtensionManager = reinterpret_cast<GetExtensionManagerDelegate>( GetProcAddress(handle, "GetExtensionManager") ); if (!GetExtensionManager) { throw std::runtime_error("Error locating GetExtensionManager in CAMAPI.ExtensionManager.dll"); } FExtensionManager = reinterpret_cast<IExtensionManager*>(GetExtensionManager()); } return FExtensionManager; } struct StaticInitializer { StaticInitializer() { ExtensionManagerHelper::Initialize(); } ~StaticInitializer() { ExtensionManagerHelper::Finalize(); } }; StaticInitializer staticInitializer;