| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > надо из под явы winamp-ом управлять |
| Автор: kashka 26.11.2004, 18:11 |
| Нужна помощь, надо из под явы winamp-ом управлять, кто знает как это делается HELP!!!!!! |
| Автор: AntonSaburov 26.11.2004, 18:32 |
| Рады Вас видеть у нас на форуме. Вы можете зарегистрироваться и стать нашим постоянным участником Но в следующий раз задавайте свой вопрос в отдельном топике если он не относиться к текущей теме. Также советую знакомиться с нашими правилами Правила форума: http://forum.vingrad.ru/index.php?s=&act=SR&f=27 По поводу вопроса - скорее всего надо будет создавать приложение через JNI, которое уже будет что-то делать с WinAmp. Хотя я не знаю как это дальше. Возможно еще посмотреть в сторону Microsoft J++. Там был мост для COM - может WinAmp через него может управляться. |
| Автор: Sleepy_PIP 26.11.2004, 18:44 | ||
если ты знаешь как управлять винампом из Delphi, C++ и прочих компилирующихся под win32 языков - то напиши на них .dll и вызывай ее ф. по JNI из Java. и вся проблемма. а? |
| Автор: AntonSaburov 26.11.2004, 18:55 |
| Пример для JNI могу дать - там по идее все не сложно. |
| Автор: kashka 29.11.2004, 19:00 |
| Hi, Budu o4444444en' priznatel'na A chto eto za JNI, nikogda ne slishala. |
| Автор: AntonSaburov 30.11.2004, 17:53 | ||||||||
| JNI - Java Native Interface. Перевод не даст общей идеи, которая заключается в том, что из JVM можно запустить код, который написан на какой-либо компилируемом языке (например на C) и лежит на диске в виде .dll (для Unix это обычно .so) Достаточно полное описание можно найти здесь http://java.sun.com/docs/books/tutorial/native1.1/TOC.html А ниже сделан очень простой вариант использования JNI. Итак, что надо: 1. Создаем обычный класс на JAVA, но тот метод, который должен использовать dll описываем как native. Кроме этого используем вызов, который загружает нашу dll.
Теперь компилируем наш пример javac JniTest.java Если ничего страшного не произошло, то по идее мы должны получить файл JniTest.class. Теперь обработаем его утилитой javah. Эта утилита создаст нам .h файл для нашей программы. Важно: надо писать файл без расширения. javah -classpath . JniTest Получаем файл JniTest.h вот такого вида.
Редактировать его уже не надо. Его надо просто включить в наш файл CPP, который показан ниже.
В нем следует обратить внимание на обработку строк. Остальные переменные обычно не так сложны. А тут видим, что надо вытащить строку из Unicode в обычный char. Теперь сделаем dll для нашего проекта. ЛУчше было бы, чтобы в системе уже был прописан путьдо компилятора. JAVA_HOME - это переменная среды, которую я всегда прописываю. Вообще это путь до директории с установленной JAVA - например, C:\j2sdk1.4.2_06. (Думаю, что это понятно) cl -I%JAVA_HOME%\include -I%JAVA_HOME%\include\win32 -LD JniTest.cpp -FeJniTest.dll Видно, что результатом компиляции должна быть JniTest.dll. Кстати, для Unix-систем должен быть файл вида libJniTest.so. Вот такая особенность. Нужен префикс lib. Теперь создаем тестовый пример.
Собираем javac -classpath . ShowJniTest.java И запускаем java -classpath . ShowJniTest Должно сработать |
| Автор: kashka 30.11.2004, 19:22 |
| |
| Автор: Domestic Cat 30.11.2004, 19:24 | ||
Есть чекбоkс рядом с кнопкой B - выделяешь и работаешь. |
| Автор: kashka 30.11.2004, 19:36 |
| Da tak konechno toge mogno... wot tol'ko neudobno potomu chto NU NE ZNAU JA GDE KAKAJA BUKWA. |
| Автор: Domestic Cat 30.11.2004, 19:55 |
| Там слева приписано "транслит". Для негo букв не надo помнить. |
| Автор: kashka 30.11.2004, 20:19 |
| у меня по русскому всегда двойка была, а так не видно есть ошибки или нет. |
| Автор: Domestic Cat 30.11.2004, 21:05 |
| Ну так лучше же, чем закорюки |