![]() |
|
|
![]()
|
|
| Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
По воли случая встретил интересную статью: "Putting a Java Interface on your C, C++, or Fortran Code". Ещё не успел прочитать, но она явно описывает что-то невероятное: чтобы Java мог понимать DLL или SL от Fortran, -- это нонсанс для меня
|
|||
|
||||
| kamre |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: нет Всего: 13 |
Очень интересная статья! Меня тоже интересует возможность/удобство такой связки, как Java(GUI)+Fortran(Computation). Сразу у меня ничего не захотело работать из того, что там дается в качестве исходников. Но вроде удалось разобраться, как создавать dll с кодом фортрана, чтобы ее понимала программа на Java. Идея создания такой dll там кратко описана: вызовы делаются из Java к C++, а от C++ к Fortran. При этом часть C++ & Fortran можно запихать в одну dll.
Я пользуюсь пока Compaq Visual Fortran и Visual C++ 6.0. Делал так: 1. Часть, которая там написана на Java я нисколько не менял. 2. Это код на c++, его пришлось немного поменять (передача скалярных параметров не через укзатели, а напрямую):
Файл TempCalcJava.h менять не нужно. 3. Теперь код на Fortran, изменил только директивы компилятора (!DEC$...):
Собирается так (предполагается, что TempCalcJava.cpp, TempCalcJava.h, tempCalcRoutines.f лежат в одной директории, что пути до include для java и lib для fortran и c++ указаны в переменных окружения): 1. Компилируем код на Fortran: df /compile_only tempCalcRoutines.f 2. Компилируем код на c++: cl /c TempCalcJava.cpp 3. Собираем все в dll: link /dll TempCalcJava.obj tempCalcRoutines.obj В результате получается одна dll, из которой экспортируются только фунции для взаимодействия с Java. Осталось только собрать Java приложение из статьи и скопировать полученную dll. |
||||
|
|||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: нет Всего: 159 |
А что тут особенного? JNI - это вполне стандартная вещь, используется и посей день для связи Java программ с нативым кодом...
|
|||
|
||||
| Cr@$h |
|
|||
![]() Исследователь ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: 1 Всего: 41 |
Тогда согласен, конечно. Про это я знаю. Думал Java напрямую к Fortran может обращаться, а про то, что к Java можно подойти из любого места, но через С++, известно многим. Дискуссию ещё продолжу, попозже. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Fortran | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |