![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| ShkVal |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 10.11.2004 Репутация: нет Всего: 1 |
Подскажите можно ли на Java вызвать функции из dll. Если можно то подскажите как или где про это можно прочесть (желательно на русском, если нет на русском то ъоть что)?
|
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Ну вот например
http://www.microsoft.com/mind/0198/jdirect.asp Но вообще зачем это нужно -------------------- |
|||
|
||||
| ShkVal |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 10.11.2004 Репутация: нет Всего: 1 |
Тут пример вроде для Microsoft-кой Java. Может кто-нибудь с этим сталкивался? Опишите вкратце что нужно сделать? Это сообщение отредактировал(а) ShkVal - 31.1.2005, 11:30 |
|||
|
||||
| ShkVal |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 10.11.2004 Репутация: нет Всего: 1 |
Подскажите. Может кто вызывал методы из dll-файлов написанных на С++ из Java. Как это делается?
|
|||
|
||||
| ZAVS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 25.2.2004 Где: ЕРЕВАН Репутация: нет Всего: 1 |
насколько я помню это делается с помощью jni (Java native interface)
посмотри в tutorial-e --------------------
Учись студент доцентом станешь :) |
|||
|
||||
| chaos |
|
||||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
Вот тебе 3 примера, обычно я делаю так
PS Примеры взяты из Excelsior JET Это сообщение отредактировал(а) chaos - 31.1.2005, 13:11 |
||||||
|
|||||||
| ShkVal |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 10.11.2004 Репутация: нет Всего: 1 |
chaos, что-то я ничего не понял
|
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
Чето я напорол не того Это пример написания dll и вызов на java, потом все это компилится в JET |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Можно сделать так:
Написать JNI вызов своей процедуры, котоая уже будет звать нужную dll (так называемый враппер/wrapper) А вот и статейка с примером: Что такое JNI - простейший пример |
|||
|
||||
| ShkVal |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 10.11.2004 Репутация: нет Всего: 1 |
AntonSaburov, что-то я не понял из этого примера как можно воспользоваться методами dll-ки. Точнее как использовать JNI понятно. Может подскажите методы на С++, чтобы с помощью jni мне вызвать метод dll
Может есть ещё какие-нибудь тулзы, чтобы решить эту задачу (вызвать функцию из dll написанную на С++) Это сообщение отредактировал(а) ShkVal - 31.1.2005, 19:04 |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Ну ты пишешь свой JNI метод для вызова его из JAVA. А из него уже никаких проблем не сосотавит вызвать ту DLL, которая тебе нужна. Т.е. сначала JAVA вызывает твою JNI dll, а эта dll уже может без каких-либо проблем вызвать стороннюю dll. |
|||
|
||||
| ShkVal |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 10.11.2004 Репутация: нет Всего: 1 |
AntonSaburov, cl -I%JAVA_HOME%\include -I%JAVA_HOME%\include\win32 -LD JniTest.cpp -FeJniTest.dll. Что это за прога и что-то у меня не запускается. Нашёл какой-то файл "C:\Program Files\Microsoft Visual Studio\VC98\Bin\CL.EXE", но не знаю то ли это что надо?
|
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Да, это именно то самое. Компилятор С++ от Майкрософт. Надо чтобы путь был прописан до него. Обычно при установке Студия спрашивает, прописать ли пути - лучше соглашаться.
|
|||
|
||||
| ShkVal |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 10.11.2004 Репутация: нет Всего: 1 |
Я сделал как в примере всё написано выдаёт ошибку
E:\Test>"C:\Program Files\Microsoft Visual Studio\VC98\Bin\CL.EXE" -I%JAVA_HOME% \include -I%JAVA_HOME%\include\win32 -LD JniTest.cpp -FeJniTest.dll Microsoft ® 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86 Copyright © Microsoft Corp 1984-1998. All rights reserved. JniTest.cpp JniTest.h(2) : fatal error C1083: Cannot open include file: 'jni.h': No such file or directory Хотя всё лежит на месте jni.h лежит в C:\j2sdk1.4.2_05\include |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
А переменная среды JAVA_HOME есть ?
Я просто ее всегда прописываю. Если нет - то надо использовать полные пути до файлов. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |