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

当前页面: 开发资料首页J2SE 专题如何取DLL返回值?

如何取DLL返回值?

摘要: 如何取DLL返回值?


function Java_com_gsxunjiansys_CommDLL_BeanDLL_termcommopen(PEnv: PJNIEnv; Obj: JObject;Port: JString;Var OPort:String):Jint;
var //;Var i:JString
JVM: TJNIEnv;
DPort:Pchar;
Begin
result:=0;
JVM := TJNIEnv.Create(PEnv);
DPort:=PChar(JVM.UnicodeJStringToString(Port));
OPort:=Port;
JVM.Free;
if Term_CommOpen(Pchar(DPort)) then
Begin
Application.MessageBox(pchar(DPort), '提示', MB_IconInformation);
result:=1;
End;
End;
----------
DELPHI写的DLL函数,想在JAVA里返回OPort这个参数的值,怎么写这个函数?另外函数已经返回0或1。


好像不能直接调用用你这个delphi写的dll,中间需要借助C++来调用这个delphi的dll
具体请看这上面的讨论
/*
*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"));
}
}


/*头文件Testjava.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include
/* Header for class Testjava */

#ifndef _Included_Testjava
#define _Included_Testjava
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Testjava
* Method: CheckPass
* Signature: (Ljava/lang/String;Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL Java_Testjava_CheckPass
(JNIEnv *, jclass, jstring, jstring);

#ifdef __cplusplus
}
#endif
#endif

/////////////////////////////////////////////////////////////
/*
类型强制转换,好了就给分哈,嘿嘿
*/
#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;
}


http://community.csdn.net/Expert/topic/5128/5128179.xml?temp=.7318537


谢谢这位兄弟。可以直接调用,只不过想返回一个值或多个值,还不知道怎么弄?在JAVA中是不是需要返回一个JOBJECT对象?


你用数组返回多个值吧


↑返回目录
前一篇: 一个map 问题.大虾来看下
后一篇: 我现在有个问题是在数据库里时间格式为2006-5-29 下午 03:46:32我现在要通过JSP查询数据库的某个时间段的情况,有没有什么好的方法让数据