powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вызов функции возвращающей строку, класс из dll посредством jna
6 сообщений из 6, страница 1 из 1
Вызов функции возвращающей строку, класс из dll посредством jna
    #39294977
ali_tash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте

public static interface wndInterfasor extends Library {
public String GetActiveWnd();
public String GetListWnd();
public int getTest(int Input);
}

wndInterfasor lib = (wndInterfasor) Native.loadLibrary("C:/Java/Proj/JavaSw/dll/WinMon.dll", wndInterfasor.class);

System.out.println(lib.GetActiveWnd()); // На этой строке программа зависает


Функция из dll которая возвращает значение integer - обрабатывается нормально.
А при выполнении функции которая из dll возвращает значение типа String - программа зависает, ошибки никакой не появляется. Сама функция из ддлки на виндовом приложении отрабатывается нормально, т.е. возникает проблема только при вызове её из java.
Но это как я понял - в java как-то по хитрому надо вызывать строковые функции - типа в char переделать ?

Ещё - можно ли вернуть из dll - массив строк ? или объект(экземпляр схожего класса - например TStringList - как в Delphi) ?

Спасибо.
...
Рейтинг: 0 / 0
Вызов функции возвращающей строку, класс из dll посредством jna
    #39295054
ali_tash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переделал функцию в DLL - чтобы она возвращала не String, а Pchar - заработало, но если функция возвращает строку на кириллице, то кирилица выходит с кракозябрами - ������.
Вопрос как сделать чтобы и килилица в java нормально выводилась ?

Вопрос про возвращение сложных типов - всё ещё актуален.
...
Рейтинг: 0 / 0
Вызов функции возвращающей строку, класс из dll посредством jna
    #39295127
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаете, как скучно постоянно делать отсылки к документации?
Почитайте, что такое JNI , в каком виде ожидаются строки и всё такое.
...
Рейтинг: 0 / 0
Вызов функции возвращающей строку, класс из dll посредством jna
    #39295130
ali_tash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,
Не JNI - JNA.

И можно поконкретней ?
Некоторое представление уже имею, но на свои вопросы ответа пока не нашёл.
...
Рейтинг: 0 / 0
Вызов функции возвращающей строку, класс из dll посредством jna
    #39295138
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, пардон, не обратил на JN A .
Но всё равно вижу упорное нечтение документации .
Там и про однобайтовые кодировки строк и про WString .
Ну а для того, чтобы разбираться, что и где используется потребуется ещё и MSDN читать и документацию на конкретные библиотеки.
...
Рейтинг: 0 / 0
Вызов функции возвращающей строку, класс из dll посредством jna
    #39295249
ali_tash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,

Спасибо, разобрался, в java принимал как WString, а в dll отправлял как PWideChar - заработало как надо.
Осталось только разобраться как отправлять и принимать классы, но мне в принципе нужен только список параметров, поэтому думаю можно обойтись массивом.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вызов функции возвращающей строку, класс из dll посредством jna
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]