mirror of
				https://github.com/nomic-ai/gpt4all.git
				synced 2025-10-31 22:02:53 +00:00 
			
		
		
		
	Initial Library Loader for .NET Bindings / Update bindings to support newest changes (#763)
* Initial Library Loader * Load library as part of Model factory * Dynamically search and find the dlls * Update tests to use locally built runtimes * Fix dylib loading, add macos runtime support for sample/tests * Bypass automatic loading by default. * Only set CMAKE_OSX_ARCHITECTURES if not already set, allow cross-compile * Switch Loading again * Update build scripts for mac/linux * Update bindings to support newest breaking changes * Fix build * Use llmodel for Windows * Actually, it does need to be libllmodel * Name * Remove TFMs, bypass loading by default * Fix script * Delete mac script --------- Co-authored-by: Tim Miller <innerlogic4321@ghmail.com>
This commit is contained in:
		| @@ -0,0 +1,24 @@ | ||||
| using System.ComponentModel; | ||||
| using System.Runtime.InteropServices; | ||||
|  | ||||
| namespace Gpt4All.LibraryLoader; | ||||
|  | ||||
| internal class WindowsLibraryLoader : ILibraryLoader | ||||
| { | ||||
|     public LoadResult OpenLibrary(string? fileName) | ||||
|     { | ||||
|         var loadedLib = LoadLibrary(fileName); | ||||
|  | ||||
|         if (loadedLib == IntPtr.Zero) | ||||
|         { | ||||
|             var errorCode = Marshal.GetLastWin32Error(); | ||||
|             var errorMessage = new Win32Exception(errorCode).Message; | ||||
|             return LoadResult.Failure(errorMessage); | ||||
|         } | ||||
|  | ||||
|         return LoadResult.Success; | ||||
|     } | ||||
|  | ||||
|     [DllImport("kernel32", SetLastError = true, CharSet = CharSet.Auto)] | ||||
|     private static extern IntPtr LoadLibrary([MarshalAs(UnmanagedType.LPWStr)] string? lpFileName); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user