//testdll.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class testdll */
#ifndef _Included_testdll
#define _Included_testdll
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: testdll
* Method: get
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_testdll_get(JNIEnv *, jclass);
/*
* Class: testdll
* Method: set
* Signature: (I)V
*/
JNIEXPORT void JNICALL Java_testdll_set(JNIEnv *, jclass, jint);
#ifdef __cplusplus
}
#endif
#endif
//testdll.java
public class testdll
{
static
{
System.loadLibrary("testdll");
}
public native static int get();
public native static void set(int i);
public static void main(String[] args)
{
testdll test = new testdll();
test.set(10);
System.out.println(test.get());
}
} gcc -Wl,--add-stdcall-alias -I "C:\Program Files\Java\jdk1.6.0_39\include" -I "C:\Program Files\Java\jdk1.6.0_39\include\win32" -shared -o testdll.dll testdll.cpp
//testdll.cpp
#include "testdll.h"
int i = 0;
JNIEXPORT jint JNICALL Java_testdll_get(JNIEnv *, jclass)
{
return i;
}
JNIEXPORT void JNICALL Java_testdll_set(JNIEnv *, jclass, jint j)
{
i = j;
}