java.lang.UnsatisfiedLinkError
メソッド呼び出しに整数を渡すと取得します。パラメータを渡さない場合、関数は魅力的に機能します。私は間違っている可能性がありますか?
スレッド「メイン」での例外 java.lang.UnsatisfiedLinkError: JniTimer.main(JniTimer.java:15) での JniTimer.jniWait(I)V
Java コード:
public class JniTimer {
static {
System.loadLibrary("JniTimer.dll");
}
public native void jniWait(int msec);
public static void main(String[] args) {
JniTimer myTimer = new JniTimer();
int a = 100;
myTimer.jniWait(a);
}
}
JNI ヘッダー:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class JniTimer */
#ifndef _Included_JniTimer
#define _Included_JniTimer
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: JniTimer
* Method: jniWait
* Signature: (I)V
*/
JNIEXPORT void JNICALL Java_JniTimer_jniWait (JNIEnv *, jobject, jint);
#ifdef __cplusplus
}
#endif
#endif
JNI 実装:
#include "stdafx.h"
#include<jni.h>
#include<windows.h>
#include "JniTimer.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_JniTimer_jniWait(JNIEnv *env, jobject obj , jint ji ) {
printf("Entered C methos") ; //////JUST PRINTING FOR DEBUG
HANDLE hWaitEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
if (hWaitEvent) {
printf ("Inside wait");
WaitForSingleObject(hWaitEvent,ji);
CloseHandle (hWaitEvent);
}
}