Java 如何使用指针将值传递给函数

Java 如何使用指针将值传递给函数,java,c,Java,C,我不熟悉C编程语言。我已经用java创建了一个头文件,以便可以从java调用C函数。我的问题是我不知道如何将值传递给方法这里是我的C代码 _declspec(dllimport) HANDLE FAR PASCAL CPSC1900Connect(BYTE port, void *param); JNIEXPORT jstring JNICALL Java_CPSE_CPSC1900Connect(JNIEnv * env, jclass hPrinter, jstring port, jst

我不熟悉C编程语言。我已经用java创建了一个头文件,以便可以从java调用C函数。我的问题是我不知道如何将值传递给方法这里是我的C代码

_declspec(dllimport) HANDLE FAR PASCAL CPSC1900Connect(BYTE port, void *param);

JNIEXPORT jstring JNICALL Java_CPSE_CPSC1900Connect(JNIEnv * env, jclass hPrinter, jstring port, jstring param)
{
     HANDLE hMapFile = NULL;
     const char *str = (*env)->GetStringUTFChars(env, port, 0);
     const char *str2 = (*env)->GetStringUTFChars(env, param, 0);
     hMapFile = CPSC1900Connect((BYTE )str,&str2);
     (*env)->ReleaseStringUTFChars(env, port, str);
     (*env)->ReleaseStringUTFChars(env, param, str2);

     return param;
}

我需要分别调用
cpsc190connect(BYTE-port,void*param)
函数和pass-port和param。如何传递这些值。以上代码中的任何更正都值得高度赞赏。

一种可能是调用另一个C函数,该函数将返回所需的指针值,然后您可以根据需要将该返回值传递给其他函数。在一天结束时,指针(内存地址)仅仅是数字,因此Java将能够存储它并在将来的JNI调用中使用它。

您可以提供其他文件或其他文件的片段吗?也许将
端口
参数设置为
jbyte
jint
可以帮助您实现
参数
?指向什么的指针?@iharob cpsc190connect(字节端口,void*param);这就是我需要调用的方法。字节rc=CPSC1900连接(端口,IP地址);我从java传递端口和IP地址,但我不知道如何传递C函数,这是我的本地java方法。如果公共本机字节CPSC190CONNECT(字符串端口,字符串参数)有任何错误,您可以纠正我;