Problema al leer una DLL con JNA en java
Publicado por Evaristo (1 intervención) el 19/09/2013 22:15:31
Estoy usando una DLL escrita en c++ con JNA en java, y en general funciona bien pero hay una función que recibe como parámetro una estructura y no se como acceder a ella con JNA, les dejo la función.
Esto es como esta en c++
ScanPorts(portInfo, &portCount, 0);
asi esta definida esta funcion en el .h
XsensResultValue cmtScanPorts(CmtPortInfo* portInfo, uint32_t* count, uint32_t baudrate = 0, uint32_t singleScanTimeout = 1000, uint32_t scanTries = 1);
y esta es la estructura que recibe como parámetro portInfo
CmtPortInfo {
uint32_t m_baudrate;
uint32_t m_deviceId;
uint16_t m_portNr;
char m_portName[256];
}
Esto es lo que hice con JNA
public static native
int cmtScanPorts(?, int count, int baudrate, int singleScanTimeout, int scanTries);
Como verán debido a que el primer argumento es una estructura en C, no se que ponerle en java, ya intente de todo, variables tipo object, variant, arreglos, int, float, char, etc
Alguien que realmente sepa del tema que me pueda ayudar
Quiero aclarar que todo lo demás esta bien y en general la librería esta funcionando bien, el problema es con esa función que requiere una estructura como parámetro
Esto es como esta en c++
ScanPorts(portInfo, &portCount, 0);
asi esta definida esta funcion en el .h
XsensResultValue cmtScanPorts(CmtPortInfo* portInfo, uint32_t* count, uint32_t baudrate = 0, uint32_t singleScanTimeout = 1000, uint32_t scanTries = 1);
y esta es la estructura que recibe como parámetro portInfo
CmtPortInfo {
uint32_t m_baudrate;
uint32_t m_deviceId;
uint16_t m_portNr;
char m_portName[256];
}
Esto es lo que hice con JNA
public static native
int cmtScanPorts(?, int count, int baudrate, int singleScanTimeout, int scanTries);
Como verán debido a que el primer argumento es una estructura en C, no se que ponerle en java, ya intente de todo, variables tipo object, variant, arreglos, int, float, char, etc
Alguien que realmente sepa del tema que me pueda ayudar
Quiero aclarar que todo lo demás esta bien y en general la librería esta funcionando bien, el problema es con esa función que requiere una estructura como parámetro
Valora esta pregunta


0