protected SqliteDataProviderCommon(INativeLibraryLoader loader, string fileName, SqliteDateFormat dateFormat) { loader?.LoadLibrary(); _sqlite3 = new SqliteAPI(); FileName = fileName; DateFormat = dateFormat; }
public NativeLibrary(string path, INativeLibraryLoader loader) { this.path = path; this.loader = loader; this.handle = loader.LoadLibrary(path); if (this.handle == IntPtr.Zero) { throw new DllNotFoundException(path); } }
public NativeLibrary(string path, INativeLibraryLoader loader) { this.path = path; this.loader = loader; this.handle = loader.LoadLibrary(path); if (this.handle == IntPtr.Zero) { throw new DllNotFoundException(path); } }
internal NativeLibrary(string path, INativeLibraryLoader loader) { _path = path; _loader = loader; _handle = loader.LoadLibrary(path); if (_handle == IntPtr.Zero) { Trace.TraceError("NativeLibrary handle == IntPtr.Zero"); throw new DllNotFoundException(path); } }
internal NativeLibrary(string path, INativeLibraryLoader loader, IntPtr handle = default) { _path = path; _loader = loader; if (handle != default) { _handle = loader.LoadLibrary(path); } else { _handle = handle; } if (_handle == IntPtr.Zero) { var error = loader.LastError(); Trace.TraceError("NativeLibrary: handle == IntPtr.Zero, lastError: " + (long)error); throw new DllNotFoundException(path); } }
static FunctionAddrLoader GetFunctionAddrLoader(LibraryContent[] libToLoad, INativeLibraryLoader loader) { var assem = Assembly.GetExecutingAssembly(); var an = assem.GetName(); var asseName = an.Name + "."; var tempDirName = new DirectoryInfo(Path.Combine(Path.GetTempPath(), $"{NativlibTool.GetHashAssembly()}.{loader.GetArch()}.{an.Version}")); // 1. create temp folder { if (!tempDirName.Exists) { tempDirName.Create(); } } // 2. copy to file { NativlibTool.WriteToTempDir(tempDirName.FullName, libToLoad); } // 3. load library Dictionary <string, IntPtr> libAddrDict = new Dictionary <string, IntPtr>(); { foreach (var lib in libToLoad) { var fileToLoadPath = Path.Combine(tempDirName.FullName, lib.FullPath); if (loader.LoadLibrary(fileToLoadPath, out var libAddrPtr, out var errorInfo) == false) { throw new Exception($"load lib error: {fileToLoadPath} {errorInfo}"); } libAddrDict.Add(lib.FullPath, libAddrPtr); } } return(new FunctionAddrLoader(loader, libAddrDict)); }
protected SqliteDataProviderCommon(INativeLibraryLoader loader) { loader?.LoadLibrary(); _sqlite3 = new SqliteAPI(); }