2011-04-11 298 views
1

我正在使用JNA,以便在我的Java應用程序中使用C++庫。我正在使用Java中的接口來使用這些功能。該函數在C++中使用三個參數:一個unsigned int,一個const char *和一個long *。 JNA在Java中實現了字符串(根據他們的文檔)傳遞char *。同樣,它使用一個long []來傳遞一個long *。然而,我很困惑我應該通過unsigned int類型。傳入的char *表示文件的名稱,不管用於第一個參數的類型如何,它似乎都不識別該文件。而且,最後一個long類型實際上在函數執行後返回一個值。如果我使用short或int類型作爲第一個參數,那麼這個數字似乎是正確的,但是,如果我使用long類型作爲第一個參數,那麼它是不正確的。誰能幫忙?如何使用unsigned int爲JNA(Java Native Interface)使用函數?

舉一個例子,這裏是C++中的實際原型,然後我目前有在Java中的界面原型是什麼:

int JrConnect(unsigned int id, const char* config_file, long* handle); 

public int JrConnect(int[] id, String[] config_file, long[] handle); 

回答

0

使用JNA的IntByReference

+1

這不要求unsigned int是一個指向unsigned int的指針嗎? – deworde 2015-11-02 16:33:17