Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> надо из под явы winamp-ом управлять 
:(
    Опции темы
kashka
Дата 26.11.2004, 18:11 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нужна помощь,
надо из под явы winamp-ом управлять, кто знает как это делается HELP!!!!!!
  Вверх
AntonSaburov
Дата 26.11.2004, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Рады Вас видеть у нас на форуме. Вы можете зарегистрироваться и стать нашим постоянным участником smile

Но в следующий раз задавайте свой вопрос в отдельном топике если он не относиться к текущей теме.
Также советую знакомиться с нашими правилами
Правила форума: http://forum.vingrad.ru/index.php?s=&act=SR&f=27

По поводу вопроса - скорее всего надо будет создавать приложение через JNI, которое уже будет что-то делать с WinAmp. Хотя я не знаю как это дальше.

Возможно еще посмотреть в сторону Microsoft J++. Там был мост для COM - может WinAmp через него может управляться.
PM MAIL WWW ICQ   Вверх
Sleepy_PIP
Дата 26.11.2004, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 30.6.2004
Где: Moscow

Репутация: 4
Всего: 12



Цитата(kashka @ 26.11.2004, 18:11)
Нужна помощь,
надо из под явы winamp-ом управлять, кто знает как это делается HELP!!!!!!

если ты знаешь как управлять винампом из Delphi, C++ и прочих компилирующихся под win32 языков - то напиши на них .dll и вызывай ее ф. по JNI из Java. и вся проблемма. а?



--------------------
--
Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем
свободным ..."
PM MAIL ICQ   Вверх
AntonSaburov
Дата 26.11.2004, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Пример для JNI могу дать - там по идее все не сложно.
PM MAIL WWW ICQ   Вверх
kashka
Дата 29.11.2004, 19:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered












Hi,
Budu o4444444en' priznatel'na smile.
A chto eto za JNI, nikogda ne slishala.
  Вверх
AntonSaburov
Дата 30.11.2004, 17:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



JNI - Java Native Interface.
Перевод не даст общей идеи, которая заключается в том, что из JVM можно запустить код, который написан на какой-либо компилируемом языке (например на C) и лежит на диске в виде .dll (для Unix это обычно .so)

Достаточно полное описание можно найти здесь
Trail: Java Native Interface: Table of Contents

А ниже сделан очень простой вариант использования JNI.

Итак, что надо:

1. Создаем обычный класс на JAVA, но тот метод, который должен использовать dll описываем как native. Кроме этого используем вызов, который загружает нашу dll.

Код

public class JniTest  
{
   static
   {
       System.loadLibrary("JniTest");
   }

   public native int showString(String message);  // обращаем внимание на слово native
}


Теперь компилируем наш пример
javac JniTest.java

Если ничего страшного не произошло, то по идее мы должны получить файл JniTest.class.

Теперь обработаем его утилитой javah. Эта утилита создаст нам .h файл для нашей программы.
Важно: надо писать файл без расширения.

javah -classpath . JniTest

Получаем файл JniTest.h вот такого вида.

Код

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class JniTest */

#ifndef _Included_JniTest
#define _Included_JniTest
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class:     JniTest
* Method:    showString
* Signature: (Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL Java_JniTest_showString
 (JNIEnv *, jobject, jstring);

#ifdef __cplusplus
}
#endif
#endif


Редактировать его уже не надо. Его надо просто включить в наш файл CPP, который показан ниже.

Код

#include <stdio.h>
#include "JniTest.h"

JNIEXPORT jint JNICALL Java_JniTest_showString(JNIEnv * jenv, jobject jobj, jstring message)
{
 const char *string = jenv->GetStringUTFChars(message, 0);
 printf("%s\n",string);
 jenv->ReleaseStringUTFChars(message, string);

 return 0;
}


В нем следует обратить внимание на обработку строк. Остальные переменные обычно не так сложны. А тут видим, что надо вытащить строку из 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.

Теперь создаем тестовый пример.

Код

public class ShowJniTest
{
   public static void main(String[] args)
   {
       JniTest jt = new JniTest();
       jt.showString("Hello, world!");
       jt.showString("JNI is great!");
   }
}


Собираем
javac -classpath . ShowJniTest.java

И запускаем
java -classpath . ShowJniTest

Должно сработать smile
PM MAIL WWW ICQ   Вверх
kashka
Дата 30.11.2004, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 29.11.2004
Где: Wolfenbuettel, Ge rmany

Репутация: 1
Всего: 1



smile Spasibo, ja poprobuu (izwenjaus' za maneru napisanija, russkoi klawiaturi net, a tak raskladku ja ne pomnu).
PM MAIL   Вверх
Domestic Cat
Дата 30.11.2004, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата
(izwenjaus' za maneru napisanija, russkoi klawiaturi net, a tak raskladku ja ne pomnu).


Есть чекбоkс рядом с кнопкой B - выделяешь и работаешь.


--------------------

PM   Вверх
kashka
Дата 30.11.2004, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 29.11.2004
Где: Wolfenbuettel, Ge rmany

Репутация: 1
Всего: 1



Da tak konechno toge mogno... wot tol'ko neudobno potomu chto NU NE ZNAU JA GDE KAKAJA BUKWA.
PM MAIL   Вверх
Domestic Cat
Дата 30.11.2004, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Там слева приписано "транслит". Для негo букв не надo помнить.


--------------------

PM   Вверх
kashka
Дата 30.11.2004, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 29.11.2004
Где: Wolfenbuettel, Ge rmany

Репутация: 1
Всего: 1



у меня по русскому всегда двойка была, а так не видно есть ошибки или нет.
PM MAIL   Вверх
Domestic Cat
Дата 30.11.2004, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Ну так лучше же, чем закорюки smile


--------------------

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.