• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Использование Dll

  • Автор темы Guest
  • Дата начала
G

Guest

Я знаю что данная ошибка муштыровалась тысячу раз , но пусть я буду тысяче первый , зато при вашей помощи усвою JNI на практике :).
Есть dll , на чем писанна я не знаю, скажем ее имя PinPad.dll , есть описание(вход указан) к ней, напрмер есть методы такие как:
int PinPad_start(char port, int baudRate)
int PinPad_stop()
Как мне эти методы вызвать в java? И как узнать что данная dll поддерживат JNI?
Вот мой тестовый кодик по подключению(извиняюсь что не пользуюсь вводом кода, на проксе javascript блокируется, если дадите блоки какие исползуются то мои вопросы и ответы будут привликательнее)
Код:
public class PinPad {

/**
* @param args
*/
//PinPad.dll
public native int PinPad_startt(char pszCom,long LBaundRate, char pParity,char pByte, char pStopBite);
public native int PinPad_stop();

static
{
try
{
System.load("c:\\PinPad.dll");
}
catch(Exception e)
{
System.out.prinltn(e);
}
}
public static void main(String[] args) 
{
try
{
PinPad pin = new PinPad();
pin.PinPad_DisablePort();//здесь генерится исключение
}
catch(Exception e)
{
System.out.println(e);
}
catch(UnsatisfiedLinkError ULE)
{
ULE.printStackTrace();
}


}

}
Заранее благодарен.
 
G

Guest

вчитайтесь в сообщение для начала , прокся порезала половину инструментов , включая кнопку добавления тегов кода, я попросил участников чтоб дали мне эти теги, и я их начну использовать..
например:
[TAG=]
public static void main([])
{
}
[/TAG]
 
C

Creo

Кирзач
почитай это, может поможет .
 
G

Guest

честно так и не разобрался с JNI , я просто не видел разнообразие примеров , везде одно и тоже :вывод строки.. Кто нить может мне уделить время , и заняться моим обучением :) , а то я немного дубовать :blink:
 
C

Creo

Что бы разабраться в JNI надо достаточно хорошо знать C++. Насколько хорошо ты его знаешь? Если ты не очень хорошо знаешь C++, но хочешь досканально разабраться во всех возможностях Java, JNI это чуть ли не самое последние, что тебе следовало бы изучать. По той причине, что джава задумывалась, как кроссплатформенный язык, а JNI зразу "обрубает" данную возможность. Это описание JNI , вот тут по идее примеры
 
G

Guest

Счас я проштудировал все что мне надо сделать .. и понял , что ява в моих задачах как камень привязанный к ноге ..
Мне надо реализовать управление устройств присоединеных по USB, и по COM порту. Половину устройств имеют сишные библиотеки(dll). Так что блин придется в си ударятся. :blink: :)
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
не советовал бы учить что либо по примерам. и следует осторожно относится к русскоязычным статьям. толковых ресурсов по яве в рунете совсем мало.
обычно достаточно информации на sun.com. уровень материалов там очень высок + спеки. но есть один минус, человеку который продумывал стуктуру портала и навигацию надо руки об батарею ровнять.




Еще есть куча решений для работы с нативными библиотеками JNA, JNative, j-interop(для COM) и тд.
 
G

Guest

Спасибо за ссылки , изучаю , понравилось про руки.. :)
ПС: Си ни миллиметра не знаю..
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
Счас я проштудировал все что мне надо сделать .. и понял , что ява в моих задачах как камень привязанный к ноге ..
Мне надо реализовать управление устройств присоединеных по USB, и по COM порту. Половину устройств имеют сишные библиотеки(dll). Так что блин придется в си ударятся. huh.gif mad.gif

я бы использовал JNA (https://jna.dev.java.net/). кривая вхождения для Си гораздо круче. Хотя конечно да, ява и железо не самая привычная связка.
 
C

Creo

Смотрел JNA, но мне кажется, что многие сишные понятия выглядят очень синтетически, неестественно... Зато с другой стороны ни строчки на С, сплошная Java. В любом случае мне кажется С придётся и так и так учить... Так что на чём всё это добро реализовать, решать тебе... Лично мне JNI всё таки ближе, хотя JNA не разу не пользовался, просто такое вот у меня первое впечатление...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!