在做jni调用vc的 dll。
java代码:
具体实现代码:
头文件:
JNIEXPORT jint JNICALL Java_www_testdll_vc_Vcdll_Usb_ChangePin
(JNIEnv *, jclass, jstring, jint, jstring, jint);
自己写的dll文件部分代码:
JNIEXPORT jint JNICALL Java_www_testdll_vc_Vcdll_Usb_ChangePin
(JNIEnv * env, jclass, jstring lpOldPin, jint lpOldPinLen, jstring lpNewPin, jint lpNewPinLen)
{
unsigned char * pin=( unsigned char *) (env)->GetStringUTFChars(lpOldPin,0);
if(strcmp((const char*)pin,(const char*)lpPinStr)!=0)
{
printf("输入旧口令不正确");
return 0;
}
return 0;
}
dll编译时通过了,没出错。
在java里面调用的时候出错了
Exception in thread "main" java.lang.UnsatisfiedLinkError: Usb_ChangePin
at www.testdll.vc.Vcdll.Usb_ChangePin(Native Method)
at www.testdll.vc.Vcdll.UsbChangePin(Vcdll.java:61)
at www.testdll.vc.CallFun.UsbChangePin(CallFun.java:112)
at testdll.TT.main(TT.java:11)
不知道是哪出错了?高手指点下。