本文整理汇总了C#中ClassLoaderWrapper.UnregisterNativeLibrary方法的典型用法代码示例。如果您正苦于以下问题:C# ClassLoaderWrapper.UnregisterNativeLibrary方法的具体用法?C# ClassLoaderWrapper.UnregisterNativeLibrary怎么用?C# ClassLoaderWrapper.UnregisterNativeLibrary使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ClassLoaderWrapper
的用法示例。
在下文中一共展示了ClassLoaderWrapper.UnregisterNativeLibrary方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UnloadLibrary
private unsafe static void UnloadLibrary(long handle, ClassLoaderWrapper loader)
{
lock (JniLock)
{
Tracer.Info(Tracer.Jni, "Unloading library: handle = 0x{0:X}, class loader = {1}", handle, loader);
IntPtr p = (IntPtr)handle;
IntPtr onunload = ikvm_GetProcAddress(p, "JNI_OnUnload", IntPtr.Size * 2);
if (onunload != IntPtr.Zero)
{
Tracer.Info(Tracer.Jni, "Calling JNI_OnUnload on: handle = 0x{0:X}", handle);
JNI.Frame f = new JNI.Frame();
ClassLoaderWrapper prevLoader = f.Enter(loader);
try
{
// TODO on Whidbey we should be able to use Marshal.GetDelegateForFunctionPointer to call OnLoad
ikvm_CallOnLoad(onunload, JavaVM.pJavaVM, null);
}
finally
{
f.Leave(prevLoader);
}
}
nativeLibraries.Remove(p);
loader.UnregisterNativeLibrary(p);
ikvm_FreeLibrary((IntPtr)handle);
}
}