JNIWrapper Changelog

What's new in JNIWrapper 3.12

Aug 17, 2021
  • Improvements:
  • Added support of macOS Sierra.
  • Resolved Issues:
  • Fixed incorrect string value extraction from ExternalStringPointer on Mac and Linux.

New in JNIWrapper 3.10 (Dec 27, 2014)

  • Added support of Windows 8 platform (32-bit and 64-bit modes)
  • Added support of Java 8
  • Fixed the handle leak issue in native implementation of JNIWrapper hooks
  • Resolved the issue with improper unloading of native JNIWrapper library on Java 7 and higher

New in JNIWrapper 3.9 (Jul 3, 2014)

  • Fixed the native crash issue with invocation of callbacks on newer versions of Linux systems (32-bit Ubuntu 13, 64-bit Ubuntu 14, etc.);
  • Fixed the cause of FunctionExecutionException issue during invocation of a same native function from the different threads on 32-bit and 64-bit Linux systems;
  • Fixed problem with segmentation fault on 64-bit Linux systems;
  • Fixed the issue with retrieving a last error code after native function calls on 32-bit and 64-bit Windows systems;
  • Fixed ClassCastException in JNIWrapper logger;
  • Fixed the FileNotFoundException (access is denied) error during loading native JNIWrapper library from a JAR;
  • Fixed the issues in native implementation of JNIWrapper callbacks for 64-bit Windows platforms;
  • Added new Pointer.Void#castTo(Pointer.Void) method;
  • Fixed the issue with unnecessary creation of a temporary folder at startup;
  • Fixed the blocking issue in the NativeResourceCollector.stop() method;
  • Improved API of ExternalStringPointer class;
  • Fixed a cause of FileNotFoundException: (Access is denied) exception while loading a native JNIWrapper library;
  • Fixed a cause of JNIWrapperException: java.io.IOException: Access is denied exception;
  • Fixed loading of native libraries from OSGi bundles;
  • Solved issue with Java security warning (jdk 1.7) when an application loads JNIWrapper library.

New in JNIWrapper 3.8.4 (Jul 19, 2013)

  • New features and improvements:
  • Added support of Windows 8 platform (32-bit and 64-bit modes).
  • Improved reliability of native callbacks on 64-bit Windows platforms;
  • Resolved Issues:
  • Resolved synchronization issue in JNIWrapper Callback class;
  • Fixed the cause of faulty FunctionExecutionException in multi threaded environment in Function.invoke() method on Linux platforms;
  • Solved threading issue in Library class;
  • Fixed the StackOverflowError issue in Codegen for JNIWrapper application with processing type definitions which use the same names as original types, such as “typedef struct SomeStructure SomeStructure;”

New in JNIWrapper 3.8.3 (Jan 31, 2012)

  • Improvements:
  • Added new LibraryVersionMismatchException exception which is designed to indicate that a supplied native library is not compatible with the current version of JNIWrapper.
  • Platforms: All
  • Resolved Issues:
  • Fixed issues with CBT and several other Hooks. Platforms: 32-bit and 64-bit Windows;

New in JNIWrapper 3.8.2 (Jan 31, 2012)

  • Improvements:
  • The native libraries (including JNIWrapper) are extracted to the named temporary folder;
  • Added the ability to perform compatibility check of the installed native JNIWrapper libraries;
  • Added synchronous hook (CallWindowProc) implementation (WinPack);
  • Added the ability to determine Vista and Windows 7 platforms in VersionInfo class (WinPack).
  • Resolved Issues:
  • Now all native libraries extracted from a JAR will be deleted at JVM shutdown;
  • Incorrect detection of some Windows versions released prior to Vista;

New in JNIWrapper 3.8.1 (Dec 29, 2009)

  • New Features and Improvements:
  • Added implementations of low level keyboard (Hook.KEYBOARD_LL) and mouse (Hook.MOUSE_LL) hooks. These new hooks can be used on 64-bit Windows systems instead of KEYBOARD and MOUSE hooks in order to solve deadlock issues. (WinPack);
  • Added support of synchronous / asynchronous modes for Hooks in 32-bit and 64-bit JNIWrapper libraries (JNIWrapper and WinPack).

New in JNIWrapper 3.8.0 (Sep 12, 2009)

  • New Features and Improvements:
  • From now on JNIWrapper is using the SLF4J Logging Facade that allowing the end user to plug in the desired logging framework at deployment time
  • Added OSGI manifest for JNIWrapper library
  • Added new Pointer.getParameterClass() method that returns a paramter type
  • Added new constructor to Pointer.OutOnly class that allows to specify a parameter type, like in Pointer class
  • Added new constructor to OpenSaveFileDialog class that allows to pass a parent Wnd (WinPack)
  • Added new getBuild() and getRevision() methods to the FileInformation class (WinPack)
  • Added constructors that allows to pass owner's window handle as Wnd paramter to SelectFolderDialog class (WinPack)
  • Added the wrapper for GetAncestor API function to Wnd class (WinPack)
  • Added the ability to access Win32 registry on x64 OS and vice versa (WinPack)
  • Added wrappers for GUITHREADINFO structure and GetGUIThreadInfo function (WinPack)
  • Resolved Issues:
  • NPE in DefaultLibraryLoader.findLibrary() method which occurs in Eclipse environment (platforms: All)
  • Problem with launching MacPack demo application
  • Several UI issues in Codegen application
  • NPE in SelectFolderDialog(String rootFolder, String caption) constructor of SelectFolderDialog class (WinPack)
  • Problem with hanling RegistryKeyType.MULTI_SZ with (null) entry (WinPack)
  • Removed memory leak in DDE functionality (WinPack)
  • Updated Wnd.FindWindowEx method that didn't correctly handle null value for the className parameter (WinPack)
  • Updated Icon.loadFromStream() method, so now it can correctly recongnize invalid/broken streams (WinPack)
  • "IndexOutOfBoundsException" and "java.lang.RuntimeException: Resource not found" issues in Icon.load() method (WinPack)
  • Exception in Bitmap.toImage for 16bit color depth (WinPack)

New in JNIWrapper 3.7.1 (Mar 5, 2009)

  • Improvements:
  • Improved finding and loading of native libraries by DefaultLibraryLoader
  • Signed all JARs with new official signature
  • Added ability to print out the license diagnostic information using -Dteamdev.license.info=true VM parameter
  • Fixes:
  • Fixed issues with incorrect calculation of alignment in Structure class
  • Fixed the issue with open/save dialogs what it hangs under some JVM versions (WinPack)
  • Documentation:
  • Updated JNIWrapper Programmer's Guide with the latest information

New in JNIWrapper 3.7 (Oct 31, 2008)

  • Improved ProcessorInfo class in order to determine new AMD and Intel processors correctly.
  • Added several missing Javadocs for API
  • Misc improvements in the documentation
  • Fixed the issue with incorrect offset calculation in filling end of the string when setting new value.
  • Fixed the issue when NativeResourceCollector doesn't start if it's already stopped.
  • Added several missing constants in the com.jniwrapper.win32.process.Process.PriorityClass

New in JNIWrapper 3.6.1 (Jul 6, 2007)

  • Added support for Solaris x86 and x86-64 platforms.
  • Fixed incorrect optimization while reading a Pointer's referenced object. (Platforms: All)
  • Fixed the problem with reading of referenced objects from Pointer.OutOnly in callbacks. (Platforms: All)
  • Added the ability to load a native library, whose path is specified in an application class path; Now it's possible just to add the folder (where the native library resides) to the -cp VM parameter. (Platforms: All)