我在java里面的代码如下:
public class testjava
{
static
{
System.loadLibrary("testdll");
}
public native static int CheckPass(String FUserID,String FPassWord);
public static void main(String[] args)
{
testdll t = new testdll();
System.out.println(t.CheckPass("admin","12345678"));
}
}java里面想调用VC里面的函数为CheckPassWord, CheckPassWord的函数原型是
int CheckPassWord(char * FUserID,char * FPassWord)请问我在下面的方法中,如何调用CheckPassWord这个方法。JNIEXPORT jint JNICALL Java_testdll_CheckPass (JNIEnv * env, jclass, jstring FU, jstring FP)
{
;
}我的目的是用java调用VC里面的方法CheckPassWord
public class testjava
{
static
{
System.loadLibrary("testdll");
}
public native static int CheckPass(String FUserID,String FPassWord);
public static void main(String[] args)
{
testdll t = new testdll();
System.out.println(t.CheckPass("admin","12345678"));
}
}java里面想调用VC里面的函数为CheckPassWord, CheckPassWord的函数原型是
int CheckPassWord(char * FUserID,char * FPassWord)请问我在下面的方法中,如何调用CheckPassWord这个方法。JNIEXPORT jint JNICALL Java_testdll_CheckPass (JNIEnv * env, jclass, jstring FU, jstring FP)
{
;
}我的目的是用java调用VC里面的方法CheckPassWord
{
CheckPassWord(env->GetStringUTFChars(str,false),env->GetStringUTFChars(FP,false));
}
在VC里面编译出现下面的错误:
cannot convert parameter 1 from 'const char *' to 'char *'
Conversion loses qualifiers
类型强制转换
*/
#include <jni.h>
#include "Testjava.h"
#include <stdio.h>void ok(char * a,char *b)
{
printf("%s",a);
printf("%s",b);
}
JNIEXPORT jint JNICALL Java_Testjava_CheckPass (JNIEnv *env, jclass obj, jstring id, jstring pwd)
{
const char* cid = (*env)->GetStringUTFChars(env, id, 0);
const char* cpwd =(*env)->GetStringUTFChars(env, pwd, 0);
printf("%s",cid);
printf("%s",cpwd);
ok((char* )cid,(char*)cpwd);
return 0;
}