Watch
2
0
Fork
You've already forked raylib-cs
0

Improve custom dll import error handling

* Use NativeLibrary.Load instead of NativeLibrary.TryLoad
* Add error details to the DllNotFoundException
This commit is contained in:
Chris 2026-09-03 19:01:21 +01:00
commit d32feb765a

View file

@ -26,21 +26,31 @@ public static unsafe partial class Raylib
public static IntPtr ResolveDllImport(string libraryName, Assembly assembly, DllImportSearchPath? searchPath)
{
IntPtr handle = IntPtr.Zero;
string libraryPath = GetLibraryPath(libraryName);
if (NativeLibrary.TryLoad(libraryName, assembly, searchPath, out handle))
string resolveNameError;
try
{
IntPtr handle = NativeLibrary.Load(libraryName, assembly, searchPath);
return handle;
}
if (NativeLibrary.TryLoad(libraryPath, out handle))
catch (Exception ex)
{
resolveNameError = ex.Message;
}
string resolvePathError;
string libraryPath = GetLibraryPath(libraryName);
try
{
IntPtr handle = NativeLibrary.Load(libraryPath);
return handle;
}
catch (Exception ex)
{
resolvePathError = ex.Message;
}
throw new DllNotFoundException(
$"Failed to load {libraryName}."
string.Join("\n", string.Empty, resolveNameError, resolvePathError)
);
}