|
|
|
Вызов функции возвращающей строку, класс из dll посредством jna
|
|||
|---|---|---|---|
|
#18+
Здравствуйте 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) ? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2016, 17:29 |
|
||
|
Вызов функции возвращающей строку, класс из dll посредством jna
|
|||
|---|---|---|---|
|
#18+
Переделал функцию в DLL - чтобы она возвращала не String, а Pchar - заработало, но если функция возвращает строку на кириллице, то кирилица выходит с кракозябрами - ������. Вопрос как сделать чтобы и килилица в java нормально выводилась ? Вопрос про возвращение сложных типов - всё ещё актуален. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 03:30 |
|
||
|
Вызов функции возвращающей строку, класс из dll посредством jna
|
|||
|---|---|---|---|
|
#18+
Знаете, как скучно постоянно делать отсылки к документации? Почитайте, что такое JNI , в каком виде ожидаются строки и всё такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 15:29 |
|
||
|
Вызов функции возвращающей строку, класс из dll посредством jna
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Не JNI - JNA. И можно поконкретней ? Некоторое представление уже имею, но на свои вопросы ответа пока не нашёл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 15:43 |
|
||
|
Вызов функции возвращающей строку, класс из dll посредством jna
|
|||
|---|---|---|---|
|
#18+
Да, пардон, не обратил на JN A . Но всё равно вижу упорное нечтение документации . Там и про однобайтовые кодировки строк и про WString . Ну а для того, чтобы разбираться, что и где используется потребуется ещё и MSDN читать и документацию на конкретные библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 16:34 |
|
||
|
Вызов функции возвращающей строку, класс из dll посредством jna
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Спасибо, разобрался, в java принимал как WString, а в dll отправлял как PWideChar - заработало как надо. Осталось только разобраться как отправлять и принимать классы, но мне в принципе нужен только список параметров, поэтому думаю можно обойтись массивом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2016, 02:10 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=90&tid=2123798]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
5ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 322ms |

| 0 / 0 |
