Example #1
0
        private NativeModule module; // so it doesn't get unloaded
#pragma warning restore 0414

        private static FunctionLoadResult <T> LazyInitialization(NativeModule module, string functionName)
        {
            if (module.Module == IntPtr.Zero)
            {
                return(new FunctionLoadResult <T>(FunctionLoadResultKind.LibraryNotFound));
            }
            else
            {
                IntPtr funcptr = FunctionInterop.LoadFunctionPointer(module.Module, functionName);
                if (funcptr == IntPtr.Zero)
                {
                    return(new FunctionLoadResult <T>(FunctionLoadResultKind.FunctionNotFound));
                }
                else
                {
                    return(new FunctionLoadResult <T>(Marshal.GetDelegateForFunctionPointer <T>(funcptr)));
                }
            }
        }