我正在嘗試使用JNA通過插入計算機的USB設備進行通信。使用提供給我的Java和.dll。我無法與寫功能:JNA通過引用幫助傳遞結構
C代碼:
typedef struct {
unsigned int id;
unsigned int timestamp;
unsigned char flags;
unsigned char len;
unsigned char data[16];
} CANMsg;
CAN_STATUS canplus_Write(
CANHANDLE handle, //long
CANMsg *msg
);
相當於Java:
public class CANMsg extends Structure{
public int id = 0;
public int timestamp = 0;
public byte flags = 0;
public byte len = 8;
public byte data[] = new byte[16];
}
int canplus_Write(NativeLong handle, CANMsg msg);
我已經證實,我可以打開和關閉設備。關閉需要NativeLong句柄,所以我假設CANMsg味精是這裏的問題。我還確認,該設備在使用C代碼進行測試時工作。
我已經仔細閱讀了JNA文檔......我想。任何指針。謝謝大家。
所以,需要補充的是,JNA有很多實例記錄。 如何翻譯結構: https://jna.dev.java.net/javadoc/overview-summary.html#structures 類型的翻譯進一步在頁面上。 因此,他們可以做到這一點...爲什麼我不能!無論如何。感謝您的意見。 – tyeh26 2009-06-01 17:59:03