程序如下,
char* Decrept(char* source, char* dest, int destlen)
{
int len,i;
len=strlen(source);
if(destlen<len) return NULL;
*dest=*source-128;
for(i=1;i<len;i++)
{
*(dest+i)=*(source+i)-128+*(dest+i-1);
}
*(dest+len)=0;
return (char*)dest;
}谢谢!
char* Decrept(char* source, char* dest, int destlen)
{
int len,i;
len=strlen(source);
if(destlen<len) return NULL;
*dest=*source-128;
for(i=1;i<len;i++)
{
*(dest+i)=*(source+i)-128+*(dest+i-1);
}
*(dest+len)=0;
return (char*)dest;
}谢谢!
*
*Testjava.java文件
*/
public class Testjava
{
static
{
System.loadLibrary("testdll");
}
public native static int CheckPass(String FUserID,String FPassWord);
public static void main(String[] args)
{
Testjava t = new Testjava();
System.out.println(t.CheckPass("admin","12345678"));
}
}
javac Testjava.java 生成class文件
javah -jni Testjava 生成符合java的c的头文件Testjava.h然后就是调用你那个功能的函数了,以下是我帮人写得例子
#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;
}
看看这个我里面有回答
http://community.csdn.net/Expert/topic/5128/5128179.xml?temp=.5352747
{
int len=dest.length();
char destChar[]=new char[len];
if(destlen<len) return null;
destChar[0]=(char)(source.charAt(0)-128);
for(int i=1;i<len;i++)
{
destChar[i]=(char)(source.charAt(i)-128+destChar[i-1]);
}
return destChar.toString();
}不知是否符合楼主的要求