в заголовочном файле DLL, которую нужно обернуть, использует тип данных BSTR в качестве параметра ввода / вывода.Мне нужно создать его отображение в JNA.Я нашел следующий пример:
class BSTR extends PointerType {
public BSTR() { }
public BSTR(String value) {
super(new Memory(value.length()*2+6).share(4));
getPointer().setInt(-4, value.length()*2);
getPointer().setString(0, value, true);
}
public String toString() {
int length = getPointer().getInt(-4);
char[] data = getPointer().getCharArray(0, length/2);
return new String(data);
}
}
, но после использования его в вызове метода JNA результат пуст (= длина равна 0 и данных нет).Есть ли у вас какие-либо предложения, как создать правильное отображение для BSTR, чтобы использовать его в качестве параметра ввода / вывода функции?Похоже, что BSTR не передается по ссылке на метод DLL, поэтому результат все еще пуст, но это только мое предположение.Возможно, отображение правильное, но неправильно используется при вызове метода.Заранее благодарен за любое предложение.