diff options
-rw-r--r-- | make/build.xml | 6 | ||||
-rwxr-xr-x | src/java/com/jogamp/common/os/DynamicLinker.java | 2 | ||||
-rwxr-xr-x | src/java/com/jogamp/common/os/NativeLibrary.java | 4 | ||||
-rw-r--r-- | src/java/com/jogamp/common/util/AndroidPackageUtil.java | 59 | ||||
-rw-r--r-- | src/java/com/jogamp/common/util/JogampVersion.java | 9 | ||||
-rwxr-xr-x | src/java/jogamp/common/os/MacOSXDynamicLinkerImpl.java (renamed from src/java/com/jogamp/common/os/MacOSXDynamicLinkerImpl.java) | 4 | ||||
-rwxr-xr-x | src/java/jogamp/common/os/UnixDynamicLinkerImpl.java (renamed from src/java/com/jogamp/common/os/UnixDynamicLinkerImpl.java) | 4 | ||||
-rwxr-xr-x | src/java/jogamp/common/os/WindowsDynamicLinkerImpl.java (renamed from src/java/com/jogamp/common/os/WindowsDynamicLinkerImpl.java) | 4 | ||||
-rw-r--r-- | src/java/jogamp/common/os/android/GluegenVersionActivity.java | 4 | ||||
-rwxr-xr-x | src/native/macosx/MacOSXDynamicLinkerImpl_JNI.c | 18 | ||||
-rwxr-xr-x | src/native/unix/UnixDynamicLinkerImpl_JNI.c | 18 | ||||
-rwxr-xr-x | src/native/windows/WindowsDynamicLinkerImpl_JNI.c | 18 |
12 files changed, 54 insertions, 96 deletions
diff --git a/make/build.xml b/make/build.xml index 4ead36c..e5d5a15 100644 --- a/make/build.xml +++ b/make/build.xml @@ -416,9 +416,9 @@ <javah destdir="${src.generated.c}" classpath="${classes}" class="jogamp.common.os.MachineDescriptionRuntime" /> <javah destdir="${src.generated.c}" classpath="${classes}" class="com.jogamp.common.jvm.JVMUtil" /> <javah destdir="${src.generated.c}" classpath="${classes}" class="com.jogamp.common.nio.PointerBuffer" /> - <javah destdir="${src.generated.c}/Unix" classpath="${classes}" class="com.jogamp.common.os.UnixDynamicLinkerImpl" /> - <javah destdir="${src.generated.c}/MacOSX" classpath="${classes}" class="com.jogamp.common.os.MacOSXDynamicLinkerImpl" /> - <javah destdir="${src.generated.c}/Windows" classpath="${classes}" class="com.jogamp.common.os.WindowsDynamicLinkerImpl"/> + <javah destdir="${src.generated.c}/Unix" classpath="${classes}" class="jogamp.common.os.UnixDynamicLinkerImpl" /> + <javah destdir="${src.generated.c}/MacOSX" classpath="${classes}" class="jogamp.common.os.MacOSXDynamicLinkerImpl" /> + <javah destdir="${src.generated.c}/Windows" classpath="${classes}" class="jogamp.common.os.WindowsDynamicLinkerImpl"/> <echo message="Output lib name = ${output.lib.name} -> ${output.lib.name.os}" /> diff --git a/src/java/com/jogamp/common/os/DynamicLinker.java b/src/java/com/jogamp/common/os/DynamicLinker.java index d67a38f..924a776 100755 --- a/src/java/com/jogamp/common/os/DynamicLinker.java +++ b/src/java/com/jogamp/common/os/DynamicLinker.java @@ -42,7 +42,7 @@ package com.jogamp.common.os; /** Provides an abstract interface to the OS's low-level dynamic linking functionality. */ -interface DynamicLinker { +public interface DynamicLinker { public long openLibraryGlobal(String pathname, boolean debug); public long openLibraryLocal(String pathname, boolean debug); public long lookupSymbol(long libraryHandle, String symbolName); diff --git a/src/java/com/jogamp/common/os/NativeLibrary.java b/src/java/com/jogamp/common/os/NativeLibrary.java index 47c73e6..1df0e61 100755 --- a/src/java/com/jogamp/common/os/NativeLibrary.java +++ b/src/java/com/jogamp/common/os/NativeLibrary.java @@ -41,6 +41,10 @@ package com.jogamp.common.os; import com.jogamp.gluegen.runtime.NativeLibLoader; import jogamp.common.Debug; +import jogamp.common.os.MacOSXDynamicLinkerImpl; +import jogamp.common.os.UnixDynamicLinkerImpl; +import jogamp.common.os.WindowsDynamicLinkerImpl; + import java.io.*; import java.lang.reflect.*; import java.security.*; diff --git a/src/java/com/jogamp/common/util/AndroidPackageUtil.java b/src/java/com/jogamp/common/util/AndroidPackageUtil.java deleted file mode 100644 index 86b25dd..0000000 --- a/src/java/com/jogamp/common/util/AndroidPackageUtil.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Copyright 2011 JogAmp Community. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of JogAmp Community. - */ - -package com.jogamp.common.util; - -import java.lang.reflect.Method; - -public class AndroidPackageUtil { - - static final Method androidPackageInfoUtilGetVersionName; - static final boolean androidPackageInfoUtilAvailable; - static { - final ClassLoader cl = AndroidPackageUtil.class.getClassLoader(); - Method m=null; - try { - final Class c = ReflectionUtil.getClass("jogamp.common.os.android.PackageInfoUtil", true, cl); - m = ReflectionUtil.getMethod(c, "getPackageInfoVersionName", String.class); - } catch (Exception e) { /* n/a */ } - androidPackageInfoUtilGetVersionName = m; - androidPackageInfoUtilAvailable = null != m ; - } - - public static boolean isAndroidPackageInfoAvailable() { - return androidPackageInfoUtilAvailable; - } - - public static String getAndroidPackageInfoVersionName(String packageName) { - if(androidPackageInfoUtilAvailable) { - return (String) ReflectionUtil.callMethod(null, androidPackageInfoUtilGetVersionName, packageName); - } - return null; - } -} - diff --git a/src/java/com/jogamp/common/util/JogampVersion.java b/src/java/com/jogamp/common/util/JogampVersion.java index a2b1e2f..2461c3e 100644 --- a/src/java/com/jogamp/common/util/JogampVersion.java +++ b/src/java/com/jogamp/common/util/JogampVersion.java @@ -29,6 +29,7 @@ package com.jogamp.common.util; import com.jogamp.common.GlueGenVersion; +import com.jogamp.common.os.AndroidVersion; import com.jogamp.common.os.Platform; import java.util.Iterator; @@ -36,6 +37,8 @@ import java.util.Set; import java.util.jar.Attributes; import java.util.jar.Manifest; +import jogamp.common.os.android.PackageInfoUtil; + public class JogampVersion { public static final Attributes.Name IMPLEMENTATION_BRANCH = new Attributes.Name("Implementation-Branch"); @@ -55,7 +58,11 @@ public class JogampVersion { this.hash = this.mf.hashCode(); mainAttributes = this.mf.getMainAttributes(); mainAttributeNames = mainAttributes.keySet(); - androidPackageVersionName = AndroidPackageUtil.getAndroidPackageInfoVersionName(packageName); + if(AndroidVersion.isAvailable) { + androidPackageVersionName = PackageInfoUtil.getPackageInfoVersionName(packageName); + } else { + androidPackageVersionName = null; + } } @Override diff --git a/src/java/com/jogamp/common/os/MacOSXDynamicLinkerImpl.java b/src/java/jogamp/common/os/MacOSXDynamicLinkerImpl.java index 0e71d5d..c1be2c2 100755 --- a/src/java/com/jogamp/common/os/MacOSXDynamicLinkerImpl.java +++ b/src/java/jogamp/common/os/MacOSXDynamicLinkerImpl.java @@ -1,6 +1,8 @@ /* !---- DO NOT EDIT: This file autogenerated by com\sun\gluegen\JavaEmitter.java on Mon Jul 31 16:27:00 PDT 2006 ----! */ -package com.jogamp.common.os; +package jogamp.common.os; + +import com.jogamp.common.os.DynamicLinker; public class MacOSXDynamicLinkerImpl implements DynamicLinker { diff --git a/src/java/com/jogamp/common/os/UnixDynamicLinkerImpl.java b/src/java/jogamp/common/os/UnixDynamicLinkerImpl.java index fcfe418..677df32 100755 --- a/src/java/com/jogamp/common/os/UnixDynamicLinkerImpl.java +++ b/src/java/jogamp/common/os/UnixDynamicLinkerImpl.java @@ -1,6 +1,8 @@ /* !---- DO NOT EDIT: This file autogenerated by com\sun\gluegen\JavaEmitter.java on Mon Jul 31 16:26:59 PDT 2006 ----! */ -package com.jogamp.common.os; +package jogamp.common.os; + +import com.jogamp.common.os.DynamicLinker; public class UnixDynamicLinkerImpl implements DynamicLinker { diff --git a/src/java/com/jogamp/common/os/WindowsDynamicLinkerImpl.java b/src/java/jogamp/common/os/WindowsDynamicLinkerImpl.java index 7bbfe23..09f38df 100755 --- a/src/java/com/jogamp/common/os/WindowsDynamicLinkerImpl.java +++ b/src/java/jogamp/common/os/WindowsDynamicLinkerImpl.java @@ -1,9 +1,11 @@ /* !---- DO NOT EDIT: This file autogenerated by com\sun\gluegen\JavaEmitter.java on Tue May 27 02:37:55 PDT 2008 ----! */ -package com.jogamp.common.os; +package jogamp.common.os; import java.security.*; +import com.jogamp.common.os.DynamicLinker; + public class WindowsDynamicLinkerImpl implements DynamicLinker { private static boolean DEBUG; diff --git a/src/java/jogamp/common/os/android/GluegenVersionActivity.java b/src/java/jogamp/common/os/android/GluegenVersionActivity.java index 34c6fb5..16222b6 100644 --- a/src/java/jogamp/common/os/android/GluegenVersionActivity.java +++ b/src/java/jogamp/common/os/android/GluegenVersionActivity.java @@ -43,7 +43,7 @@ public class GluegenVersionActivity extends Activity { public void onCreate(Bundle savedInstanceState) { Log.d(MD.TAG, "onCreate - S"); super.onCreate(savedInstanceState); - PackageInfoUtil.setContext(this); + PackageInfoUtil.setContext(this.getApplicationContext()); tv = new TextView(this); tv.setText(VersionUtil.getPlatformInfo()+Platform.NEWLINE+GlueGenVersion.getInstance()+Platform.NEWLINE+Platform.NEWLINE); setContentView(tv); @@ -108,8 +108,8 @@ public class GluegenVersionActivity extends Activity { if(null != tv) { tv.append("> destroyed"+Platform.NEWLINE); } - PackageInfoUtil.setContext(null); Log.d(MD.TAG, "onDestroy - x"); + PackageInfoUtil.setContext(null); super.onDestroy(); Log.d(MD.TAG, "onDestroy - X"); } diff --git a/src/native/macosx/MacOSXDynamicLinkerImpl_JNI.c b/src/native/macosx/MacOSXDynamicLinkerImpl_JNI.c index 5b67a42..757aeb0 100755 --- a/src/native/macosx/MacOSXDynamicLinkerImpl_JNI.c +++ b/src/native/macosx/MacOSXDynamicLinkerImpl_JNI.c @@ -4,18 +4,18 @@ #include <assert.h> -#include "com_jogamp_common_os_MacOSXDynamicLinkerImpl.h" +#include "jogamp_common_os_MacOSXDynamicLinkerImpl.h" #include <dlfcn.h> #include </usr/include/machine/types.h> /* Java->C glue code: - * Java package: com.jogamp.common.os.MacOSXDynamicLinkerImpl + * Java package: jogamp.common.os.MacOSXDynamicLinkerImpl * Java method: int dlclose(long __handle) * C function: int dlclose(void * __handle); */ JNIEXPORT jint JNICALL -Java_com_jogamp_common_os_MacOSXDynamicLinkerImpl_dlclose__J(JNIEnv *env, jclass _unused, jlong __handle) { +Java_jogamp_common_os_MacOSXDynamicLinkerImpl_dlclose__J(JNIEnv *env, jclass _unused, jlong __handle) { int _res; _res = dlclose((void *) (intptr_t) __handle); return _res; @@ -23,12 +23,12 @@ Java_com_jogamp_common_os_MacOSXDynamicLinkerImpl_dlclose__J(JNIEnv *env, jclass /* Java->C glue code: - * Java package: com.jogamp.common.os.MacOSXDynamicLinkerImpl + * Java package: jogamp.common.os.MacOSXDynamicLinkerImpl * Java method: java.lang.String dlerror() * C function: char * dlerror(void); */ JNIEXPORT jstring JNICALL -Java_com_jogamp_common_os_MacOSXDynamicLinkerImpl_dlerror__(JNIEnv *env, jclass _unused) { +Java_jogamp_common_os_MacOSXDynamicLinkerImpl_dlerror__(JNIEnv *env, jclass _unused) { char * _res; _res = dlerror(); if (_res == NULL) return NULL; return (*env)->NewStringUTF(env, _res); @@ -36,12 +36,12 @@ Java_com_jogamp_common_os_MacOSXDynamicLinkerImpl_dlerror__(JNIEnv *env, jclass /* Java->C glue code: - * Java package: com.jogamp.common.os.MacOSXDynamicLinkerImpl + * Java package: jogamp.common.os.MacOSXDynamicLinkerImpl * Java method: long dlopen(java.lang.String __path, int __mode) * C function: void * dlopen(const char * __path, int __mode); */ JNIEXPORT jlong JNICALL -Java_com_jogamp_common_os_MacOSXDynamicLinkerImpl_dlopen__Ljava_lang_String_2I(JNIEnv *env, jclass _unused, jstring __path, jint __mode) { +Java_jogamp_common_os_MacOSXDynamicLinkerImpl_dlopen__Ljava_lang_String_2I(JNIEnv *env, jclass _unused, jstring __path, jint __mode) { const char* _UTF8__path = NULL; void * _res; if (__path != NULL) { @@ -63,12 +63,12 @@ Java_com_jogamp_common_os_MacOSXDynamicLinkerImpl_dlopen__Ljava_lang_String_2I(J /* Java->C glue code: - * Java package: com.jogamp.common.os.MacOSXDynamicLinkerImpl + * Java package: jogamp.common.os.MacOSXDynamicLinkerImpl * Java method: long dlsym(long __handle, java.lang.String __symbol) * C function: void * dlsym(void * __handle, const char * __symbol); */ JNIEXPORT jlong JNICALL -Java_com_jogamp_common_os_MacOSXDynamicLinkerImpl_dlsym__JLjava_lang_String_2(JNIEnv *env, jclass _unused, jlong __handle, jstring __symbol) { +Java_jogamp_common_os_MacOSXDynamicLinkerImpl_dlsym__JLjava_lang_String_2(JNIEnv *env, jclass _unused, jlong __handle, jstring __symbol) { const char* _UTF8__symbol = NULL; void * _res; if (__symbol != NULL) { diff --git a/src/native/unix/UnixDynamicLinkerImpl_JNI.c b/src/native/unix/UnixDynamicLinkerImpl_JNI.c index cfe47f9..5741f22 100755 --- a/src/native/unix/UnixDynamicLinkerImpl_JNI.c +++ b/src/native/unix/UnixDynamicLinkerImpl_JNI.c @@ -4,18 +4,18 @@ #include <assert.h> -#include "com_jogamp_common_os_UnixDynamicLinkerImpl.h" +#include "jogamp_common_os_UnixDynamicLinkerImpl.h" #include <dlfcn.h> #include <inttypes.h> /* Java->C glue code: - * Java package: com.jogamp.common.os.UnixDynamicLinkerImpl + * Java package: jogamp.common.os.UnixDynamicLinkerImpl * Java method: int dlclose(long arg0) * C function: int dlclose(void * ); */ JNIEXPORT jint JNICALL -Java_com_jogamp_common_os_UnixDynamicLinkerImpl_dlclose__J(JNIEnv *env, jclass _unused, jlong arg0) { +Java_jogamp_common_os_UnixDynamicLinkerImpl_dlclose__J(JNIEnv *env, jclass _unused, jlong arg0) { int _res; _res = dlclose((void *) (intptr_t) arg0); return _res; @@ -23,12 +23,12 @@ Java_com_jogamp_common_os_UnixDynamicLinkerImpl_dlclose__J(JNIEnv *env, jclass _ /* Java->C glue code: - * Java package: com.jogamp.common.os.UnixDynamicLinkerImpl + * Java package: jogamp.common.os.UnixDynamicLinkerImpl * Java method: java.lang.String dlerror() * C function: char * dlerror(void); */ JNIEXPORT jstring JNICALL -Java_com_jogamp_common_os_UnixDynamicLinkerImpl_dlerror__(JNIEnv *env, jclass _unused) { +Java_jogamp_common_os_UnixDynamicLinkerImpl_dlerror__(JNIEnv *env, jclass _unused) { char * _res; _res = dlerror(); if (_res == NULL) return NULL; return (*env)->NewStringUTF(env, _res); @@ -36,12 +36,12 @@ Java_com_jogamp_common_os_UnixDynamicLinkerImpl_dlerror__(JNIEnv *env, jclass _u /* Java->C glue code: - * Java package: com.jogamp.common.os.UnixDynamicLinkerImpl + * Java package: jogamp.common.os.UnixDynamicLinkerImpl * Java method: long dlopen(java.lang.String arg0, int arg1) * C function: void * dlopen(const char * , int); */ JNIEXPORT jlong JNICALL -Java_com_jogamp_common_os_UnixDynamicLinkerImpl_dlopen__Ljava_lang_String_2I(JNIEnv *env, jclass _unused, jstring arg0, jint arg1) { +Java_jogamp_common_os_UnixDynamicLinkerImpl_dlopen__Ljava_lang_String_2I(JNIEnv *env, jclass _unused, jstring arg0, jint arg1) { const char* _UTF8arg0 = NULL; void * _res; if (arg0 != NULL) { @@ -63,12 +63,12 @@ Java_com_jogamp_common_os_UnixDynamicLinkerImpl_dlopen__Ljava_lang_String_2I(JNI /* Java->C glue code: - * Java package: com.jogamp.common.os.UnixDynamicLinkerImpl + * Java package: jogamp.common.os.UnixDynamicLinkerImpl * Java method: long dlsym(long arg0, java.lang.String arg1) * C function: void * dlsym(void * , const char * ); */ JNIEXPORT jlong JNICALL -Java_com_jogamp_common_os_UnixDynamicLinkerImpl_dlsym__JLjava_lang_String_2(JNIEnv *env, jclass _unused, jlong arg0, jstring arg1) { +Java_jogamp_common_os_UnixDynamicLinkerImpl_dlsym__JLjava_lang_String_2(JNIEnv *env, jclass _unused, jlong arg0, jstring arg1) { const char* _UTF8arg1 = NULL; void * _res; if (arg1 != NULL) { diff --git a/src/native/windows/WindowsDynamicLinkerImpl_JNI.c b/src/native/windows/WindowsDynamicLinkerImpl_JNI.c index b253c9c..9ddb9d0 100755 --- a/src/native/windows/WindowsDynamicLinkerImpl_JNI.c +++ b/src/native/windows/WindowsDynamicLinkerImpl_JNI.c @@ -5,7 +5,7 @@ #include <assert.h> -#include "com_jogamp_common_os_WindowsDynamicLinkerImpl.h" +#include "jogamp_common_os_WindowsDynamicLinkerImpl.h" #include <windows.h> /* This typedef is apparently needed for compilers before VC8, @@ -19,12 +19,12 @@ #endif /* Java->C glue code: - * Java package: com.jogamp.common.os.WindowsDynamicLinkerImpl + * Java package: jogamp.common.os.WindowsDynamicLinkerImpl * Java method: int FreeLibrary(long hLibModule) * C function: BOOL FreeLibrary(HANDLE hLibModule); */ JNIEXPORT jint JNICALL -Java_com_jogamp_common_os_WindowsDynamicLinkerImpl_FreeLibrary__J(JNIEnv *env, jclass _unused, jlong hLibModule) { +Java_jogamp_common_os_WindowsDynamicLinkerImpl_FreeLibrary__J(JNIEnv *env, jclass _unused, jlong hLibModule) { BOOL _res; _res = FreeLibrary((HANDLE) (intptr_t) hLibModule); return _res; @@ -32,12 +32,12 @@ Java_com_jogamp_common_os_WindowsDynamicLinkerImpl_FreeLibrary__J(JNIEnv *env, j /* Java->C glue code: - * Java package: com.jogamp.common.os.WindowsDynamicLinkerImpl + * Java package: jogamp.common.os.WindowsDynamicLinkerImpl * Java method: int GetLastError() * C function: DWORD GetLastError(void); */ JNIEXPORT jint JNICALL -Java_com_jogamp_common_os_WindowsDynamicLinkerImpl_GetLastError__(JNIEnv *env, jclass _unused) { +Java_jogamp_common_os_WindowsDynamicLinkerImpl_GetLastError__(JNIEnv *env, jclass _unused) { DWORD _res; _res = GetLastError(); return _res; @@ -45,12 +45,12 @@ Java_com_jogamp_common_os_WindowsDynamicLinkerImpl_GetLastError__(JNIEnv *env, j /* Java->C glue code: - * Java package: com.jogamp.common.os.WindowsDynamicLinkerImpl + * Java package: jogamp.common.os.WindowsDynamicLinkerImpl * Java method: long GetProcAddressA(long hModule, java.lang.String lpProcName) * C function: PROC GetProcAddressA(HANDLE hModule, LPCSTR lpProcName); */ JNIEXPORT jlong JNICALL -Java_com_jogamp_common_os_WindowsDynamicLinkerImpl_GetProcAddressA__JLjava_lang_String_2(JNIEnv *env, jclass _unused, jlong hModule, jstring lpProcName) { +Java_jogamp_common_os_WindowsDynamicLinkerImpl_GetProcAddressA__JLjava_lang_String_2(JNIEnv *env, jclass _unused, jlong hModule, jstring lpProcName) { const char* _strchars_lpProcName = NULL; PROC _res; if (lpProcName != NULL) { @@ -70,12 +70,12 @@ Java_com_jogamp_common_os_WindowsDynamicLinkerImpl_GetProcAddressA__JLjava_lang_ /* Java->C glue code: - * Java package: com.jogamp.common.os.WindowsDynamicLinkerImpl + * Java package: jogamp.common.os.WindowsDynamicLinkerImpl * Java method: long LoadLibraryW(java.lang.String lpLibFileName) * C function: HANDLE LoadLibraryW(LPCWSTR lpLibFileName); */ JNIEXPORT jlong JNICALL -Java_com_jogamp_common_os_WindowsDynamicLinkerImpl_LoadLibraryW__Ljava_lang_String_2(JNIEnv *env, jclass _unused, jstring lpLibFileName) { +Java_jogamp_common_os_WindowsDynamicLinkerImpl_LoadLibraryW__Ljava_lang_String_2(JNIEnv *env, jclass _unused, jstring lpLibFileName) { jchar* _strchars_lpLibFileName = NULL; HANDLE _res; if (lpLibFileName != NULL) { |