Documentation‎ > ‎

Mapping Native Types to JNIWrapper Classes

Please find below the mappings table for most commonly used data types along with some comments.
Native Type
(C/C++)
JNIWrapper Type Comments

Boolean Types

bool Bool(1 byte), IntBool(4 bytes)

Character Types

char Char
wchar_t WideChar
uchar * Char, UInt8

Integer Types

short ShortInt The unsigned types are represented by prepending U to the type name, e.g. unsigned int (or unsigned) type is UInt.
There are also types for predefined-width integers: Int8, Int16, Int32 and Int64, they also have the unsigned variants.
int Int
long LongInt

Floating-point Types

float SingleFloat
double DoubleFloat
long double LongDouble Long double is the same as double (8-byte floating-point value) on win32 platform.

Pointer Types (not arrays)

void * Pointer.Void
const Pointer.Const Use Pointer.Const if the referenced object is not to be modified by the calling function.
type * Pointer To create a pointer to the value (variable) of a known type, use the Pointer class.
For example: int *i; is Pointer i = new Pointer(new Int());
type * Pointer.OutOnly Use Pointer.OutOnly if the referenced value is not read by the calling function.
char * AnsiString
wchar_t * WideString

Arrays

<c primitive type>[n] PrimitiveArray(<corresponding JNIWrapper type>.class, n); For example:
int i[10];
is
PrimitiveArray i =
 new PrimitiveArray(Int.class, 10);

Structures and Unions

struct Structure
union Union

Function Pointers

To create an object callable from the native code use the Callback class.
To call a function returned from the native code use the method asFunction of the Pointer.Void class.





Windows API includes many data types that are not listed here (for example, DWORD, HANDLE). If you need to use one of such types, read Windows-specific documentation such as MSDN to find out the actual C type that corresponds to it (for example, LPSTR corresponds to char*) and use the relevant JNIWrapper type for the argument. You can also check the Windows Data Types table that we have created for your reference.