internal static IntPtr LoadNativeLibrary()

in csharp/NativeUtils/ResourceLoader.cs [181:204]


            internal static IntPtr LoadNativeLibrary(string filePath, bool lazyResolution = false)
            {
                if (IsWindows)
                    return LoadLibrary(filePath);

                // Linux/OSX distinction will probably be removed from here
                DlOpenFlags dlOpenFlags = DlOpenFlags.RTLD_GLOBAL
                    | (lazyResolution ? DlOpenFlags.RTLD_LAZY : DlOpenFlags.RTLD_NOW);

                // NOTE: Instantiate dlerror in advance, otherwise 1st call will erase the error message!
                if (IsLinux)
                    dlerror();
                else
                    dlerrorOSX();

                IntPtr handle = IsLinux
                    ? dlopen(filePath, (int)dlOpenFlags)
                    : dlopenOSX(filePath, (int)dlOpenFlags);

                if (Logger.LogLevelLeast(DBG))
                    Log($"IsLinux: {IsLinux} Flags: {dlOpenFlags} Handle: {handle} Error: {dlerror()}");

                return handle;
            }