public static void Initialize() { if (AppKitLibrary != IntPtr.Zero) { return; } AppKitLibrary = NS.LoadLibrary("/System/Library/Frameworks/AppKit.framework/AppKit"); FoundationLibrary = NS.LoadLibrary("/System/Library/Frameworks/Foundation.framework/Foundation"); }
public static Dylib Load(string name) { IntPtr handle = NS.dlopen(name, 2); if (handle == IntPtr.Zero) { return(null); } return(new Dylib(handle)); }
public static IntPtr GetStringConstant(IntPtr handle, string symbol) { var indirect = NS.GetSymbol(handle, symbol); if (indirect == IntPtr.Zero) { return(IntPtr.Zero); } var actual = Marshal.ReadIntPtr(indirect); if (actual == IntPtr.Zero) { return(IntPtr.Zero); } return(actual); }
public IntPtr GetAddress(IntPtr function) => NS.dlsym(Handle, function);
public IntPtr GetAddress(string name) => NS.dlsym(Handle, name);