The `com.jniwrapper` package contains classes that allow calling native functions from Java(TM) code.

Calling native functions is quite simple if you follow these steps:

- Prepare library search path. `DefaultLibraryLoader` contains all your `PATH` entries and gives you ability to add your own:

          DefaultLibraryLoader.getInstance().addPath(new File("path/to/my/code"));

  As the name suggests this class is used by default to load native libraries.
- Prepare call parameters. You have to create variables for each argument and for the return value.

          LongInt retVal = new LongInt(0);
          WideString str = new WideString(256);
          UInt32 len = new UInt32(256);

- Load native library and invoke a function:

          Library kernel = new Library("kernel32");
          kernel.getFunction("GetCurrentDirectoryW", null).invoke(retVal, len, new Pointer.OutOnly(str));

- Process the result:

          System.out.println("Current working directory is: " + str.getValue());