站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题有段c的程序,需要用java写,请熟悉c和java的高手帮忙,谢谢!

有段c的程序,需要用java写,请熟悉c和java的高手帮忙,谢谢!

摘要: 有段c的程序,需要用java写,请熟悉c和java的高手帮忙,谢谢!


程序如下,
char* Decrept(char* source, char* dest, int destlen)
{
int len,i;
len=strlen(source);
if(destlen
*dest=*source-128;
for(i=1;i {
*(dest+i)=*(source+i)-128+*(dest+i-1);
}
*(dest+len)=0;
return (char*)dest;
}

谢谢!


楼主不如说说这段代码完成了什么功能
c都忘的差不多了


名称已经很清楚了,呵呵,一段c写的加密算法。


解密,说错了。


还是很模糊啊,解密算法不熟悉


呵呵,所以说要熟悉c的高手啊,程序比较简单,但对c和java都熟的人不多,才求救啊。


用jni
*
*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
#include "Testjava.h"
#include

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;
}



怎么那么多人问java调用c,c++的呢,呵呵
看看这个我里面有回答
http://community.csdn.net/Expert/topic/5128/5128179.xml?temp=.5352747


String decrept(String source,String dest,int destlen)
{
int len=dest.length();
char destChar[]=new char[len];
if(destlendestChar[0]=(char)(source.charAt(0)-128);
for(int i=1;i{
destChar[i]=(char)(source.charAt(i)-128+destChar[i-1]);
}

return destChar.toString();
}

不知是否符合楼主的要求


最好还是能改成java的,调用太麻烦,谢谢禅剑飞雪的好代码,收藏先,呵呵。


哦,不好意思,没看到楼上的代码,我测一下,先谢了:)


呵呵,要想保密性好,当然调用c好点了



嗯,改成java的楼上的都写好了,那就免了阿


↑返回目录
前一篇: ActionListener问题
后一篇: 为什么说:“如果根据 equals(Object) 方法,两个对象是相等的,那么在两个对象中的每个对象上调用 hashCode 方法都必须生成相同的整数结