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

时间:2015-06-30 13:12:08

标签: 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, 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;
}

我需要调用CPSC1900Connect(BYTE port, void *param)函数并分别传递port和param。如何传递这些值。上述代码的任何更正都非常受欢迎。

1 个答案:

答案 0 :(得分:0)

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