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

Тема в разделе "Java", создана пользователем -, 5 сен 2008.

  1. Гость

    Я знаю что данная ошибка муштыровалась тысячу раз , но пусть я буду тысяче первый , зато при вашей помощи усвою JNI на практике :).
    Есть dll , на чем писанна я не знаю, скажем ее имя PinPad.dll , есть описание(вход указан) к ней, напрмер есть методы такие как:
    int PinPad_start(char port, int baudRate)
    int PinPad_stop()
    Как мне эти методы вызвать в java? И как узнать что данная dll поддерживат JNI?
    Вот мой тестовый кодик по подключению(извиняюсь что не пользуюсь вводом кода, на проксе javascript блокируется, если дадите блоки какие исползуются то мои вопросы и ответы будут привликательнее)
    Код (Text):
    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();
    }


    }

    }
    Заранее благодарен.
     
  2. Гость

    оформи код нормально
     
  3. Гость

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

    Creo Гость

  5. Гость

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

    Creo Гость

    Что бы разабраться в JNI надо достаточно хорошо знать C++. Насколько хорошо ты его знаешь? Если ты не очень хорошо знаешь C++, но хочешь досканально разабраться во всех возможностях Java, JNI это чуть ли не самое последние, что тебе следовало бы изучать. По той причине, что джава задумывалась, как кроссплатформенный язык, а JNI зразу "обрубает" данную возможность. Это описание JNI http://java.sun.com/j2se/1.5.0/docs/guide/...pec/jniTOC.html, вот тут по идее примеры JNI examples
     
  7. Гость

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

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    не советовал бы учить что либо по примерам. и следует осторожно относится к русскоязычным статьям. толковых ресурсов по яве в рунете совсем мало.
    обычно достаточно информации на sun.com. уровень материалов там очень высок + спеки. но есть один минус, человеку который продумывал стуктуру портала и навигацию надо руки об батарею ровнять.

    http://java.sun.com/j2se/1.5.0/docs/guide/jni/
    http://java.sun.com/docs/books/jni/

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

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

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    я бы использовал JNA (https://jna.dev.java.net/). кривая вхождения для Си гораздо круче. Хотя конечно да, ява и железо не самая привычная связка.
     
  11. Creo

    Creo Гость

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

Поделиться этой страницей