#pragma once #include "il2cpp-config.h" #include "utils/StringView.h" #include struct PInvokeArguments; namespace il2cpp { namespace os { class LibraryLoader { public: static Il2CppMethodPointer GetHardcodedPInvokeDependencyFunctionPointer(const il2cpp::utils::StringView& nativeDynamicLibrary, const il2cpp::utils::StringView& entryPoint); static void* LoadDynamicLibrary(const utils::StringView& nativeDynamicLibrary); static void* LoadDynamicLibrary(const utils::StringView& nativeDynamicLibrary, int flags); static Il2CppMethodPointer GetFunctionPointer(void* dynamicLibrary, const PInvokeArguments& pinvokeArgs); static Il2CppMethodPointer GetFunctionPointer(void* dynamicLibrary, const char* functionName); static void CleanupLoadedLibraries(); static bool CloseLoadedLibrary(void*& dynamicLibrary); }; } /* namespace os */ } /* namespace il2cpp*/