簡體   English   中英

如何使用指針將值傳遞給函數

[英]How to pass values to a function with pointer

我是新的 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 。 我如何傳遞這些值。 高度贊賞上述代碼的任何更正。

一種可能性是調用另一個 C 函數,該函數將返回您想要的指針值,然后您可以根據需要將該返回值傳遞給其他函數。 歸根結底,指針(內存地址)只是數字,因此 Java 將能夠存儲它並在未來的 JNI 調用中使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM