关于一个JNI 参数传递的问题
我有个问题 请问下各位
我现在有个vb的 .dll文件 ,里面函数为
closecomm(comm_value& )
参数为 comm_value 的结构为
Public Type Comm_value
com_port As String * 3 //传入参数
dis_value As String * 40 //传出参数
data_len As String * 2 //传出参数
End Type
现在我使用jni的方法 重新用c++写个dll让java 调用
代码如下
main.h
class comm_value{
public:
char com_port[10];
char dis_value[40];
char data_len[2];
};
typedef int __stdcall (*SendCard_c_mcom_set)(comm_value& value);
typedef int __stdcall (*SendCard_closecomm)(comm_value& value);
main.cpp
JNIEXPORT jint JNICALL Java_SendCardJava_c_1mcom_1set
(JNIEnv * env, jobject, jobject comm)
{
jclass commValueCls = env-> FindClass( "Comm_Value ");
jfieldID fid_CommValue_comport = env-> GetFieldID(commValueCls, "com_port ", "Ljava/lang/String; ");
jobject proCommport = env-> GetObjectField(comm,fid_CommValue_comport);
jstring ppCommPort = (jstring)env-> GetObjectField(proCommport,fid_CommValue_comport);
HINSTANCE DLLHandle;
SendCard_c_mcom_set sc_c_mcom_set;
int open_result = 0;
DLLHandle = LoadLibrary( "D:\\DGD4V3.0\\sendcard.dll "); //
if (DLLHandle) //call crmp timeout hook
{
try
{
sc_c_mcom_set = (SendCard_c_mcom_set)GetProcAddress(DLLHandle, "c_mcom_set ");
if (sc_c_mcom_set)
{
-----------------------------------------
问题: 下面的我调用vb 的dll 中的函数 c_mcom_set (Comm_value & parameter ) parameter 参数应该如何转换成Comm_value 类
并使引用中的传出的2个参数怎样传出 希望大家能帮帮忙 谢谢~
open_result = sc_c_mcom_set(commValueCls);
}