请问一下java高手jawin 如 何成功调用dll中的如下函数?
并取得返回值?
int UTGetKeyName(IN long n, OUT char * KeyName); 网上这方面资料太少,jawin的文档里举的例子和说明也太少了,
并取得返回值?
int UTGetKeyName(IN long n, OUT char * KeyName); 网上这方面资料太少,jawin的文档里举的例子和说明也太少了,
解决方案 »
- 这个题目怎么做啊,做不来了
- Java下能实现类似termcap或者Top的功能吗?
- 怎么处理以下情况的锁表问题?
- javamail 收邮件问题,帮忙解决一下。
- 我在 java扩展版提了一个关于Timer和TimerTask的问题? 求人帮忙解决
- 关于LDAP,为什么使用不存在的用户名和空密码可以通过认证?
- 如何返回对象数组!?
- 急!!高人帮忙呀!!!一个关于获取JPanel尺寸的问题!!!抢分呀!!
- ***用JAVA写了一个'搬运工'游戏,画图的时候遇到了点问题,请进!
- 什么是封装?个人总结,博客http://blog.csdn.net/u014080304
- 请问jawin 调用问题
- 前辈们.咨询个关于学习流程的问题.
* Class: testjni_UTSecJava
* Method: GetCurPubKey
* Signature: (Ltestjni/CCert;)I
*/
JNIEXPORT jint JNICALL Java_testjni_UTSecJava_GetCurPubKey
(JNIEnv *jenv, jobject, jobject jobj)
{
int ret = ERROR_FUNCTION_ADDR;
if(JavaInterFaceClass::UTGetCurPubKey)
{
JavaInterFaceClass::CCert cert;
cert.CertLen = MAX_CERT_LEN;
ret = JavaInterFaceClass::UTGetCurPubKey(cert.Cert, &cert.CertLen); jclass classobj = jenv->GetObjectClass(jobj);
jfieldID fieldID1 = jenv->GetFieldID(classobj, "EncodingType", "I") ;
jfieldID fieldID2 = jenv->GetFieldID(classobj, "CertLen" , "I") ;
jfieldID fieldID3 = jenv->GetFieldID(classobj, "Cert" , "[B") ; //jenv->SetIntField ( jobj, fieldID1, cert.EncodingType);
jenv->SetIntField ( jobj, fieldID2, cert.CertLen);
jbyteArray byteArray = jenv->NewByteArray(cert.CertLen) ;
jenv->SetByteArrayRegion( byteArray, 0, cert.CertLen, (const jbyte*)cert.Cert);
jenv->SetObjectField( jobj, fieldID3, byteArray);
}
return ret;
}
/*
* Class: testjni_UTSecJava
* Method: UTGetKeyName
* Signature: (ILjava/lang/String;)I
*/
JNIEXPORT jint JNICALL Java_testjni_UTSecJava_UTGetKeyName
(JNIEnv *jenv, jobject, jint ji, jobject jobj)
{
int ret = ERROR_FUNCTION_ADDR;
char buff[1024]={0}; if(JavaInterFaceClass::UTGetKeyName)
{
ret = JavaInterFaceClass::UTGetKeyName((long)ji, buff);
jclass classobj = jenv->GetObjectClass(jobj);
jfieldID fieldID=jenv->GetFieldID(classobj,"str","Ljava/lang/String;") ;
jenv->SetObjectField(jobj,fieldID, WindowsTojstring(jenv,buff));
} return ret;
}