Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2012, 22:33   #1
Melfa
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 14
Восклицание Создание FORTRAN dll (Compaq visual fortran) для BorlandDelphi

Всем доброе время суток!
Существует программа, написанная на языке FORTRAN в 1992 году. Состоит она из 9 модулей( один главный, который, видимо, подключает все остальные). Передо мной поставлена следующая задача: нужно из этой программы сделать dll ( компилятор compaq visual fortran), чтобы она в дальнейшем подключалась к программе, написанной на BorlandDelphy. Как это можно сделать? вообще можно ли из 9 модулей сделать единую dll? программа большая, написана не мной, и с FORTRAN я пока не очень дружу... За любую помощь заранее огромное спасибо!)
Melfa вне форума Ответить с цитированием
Старый 03.04.2012, 23:24   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

1. Почему трудно найти "универсала" именно на эти два языка - объяснял здесь (#10).

2. Как делать из Фортрановской stand-alone-программы dll-ку и прицеплять её к C/C++ - показывал здесь.

3. Гугль-запрос типа "Delphi Fortran mixed-language programming" - что-то да принесёт!
Vago вне форума Ответить с цитированием
Старый 03.04.2012, 23:35   #3
Melfa
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 14
По умолчанию

Спасибо за ответ!
Я как раз читала, перед тем как зарегистрироваться на форуме, тему про dll-ку. Мне все же не совсем понятна одна вещь... насколько я понимаю, из фортрановской программы делается подпрограмма-функция зависящая от переменных, которые в самой этой программе имеются? Если этих самых переменных 3 штуки, как в предыдущем примере все более-менее понятно... Ну а если их скажем 100 штук? что делать в этом случае?
Melfa вне форума Ответить с цитированием
Старый 04.04.2012, 00:10   #4
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Постараться избавиться от программиста, написавшего список из ста параметров Если он не сумел красиво межпрограммный интерфейс организовать, то у него и в логике, наверняка, путаница, а то и ошибки.

1. Структура.
2. Массив.
Больше пока ничего для "агрегации" параметров не придумали. Структура - логичнее и потому - понятнее, но ее передавать сложнее. Массив передать элементарно, но за "составляющими" следить сложнее.

Последний раз редактировалось Vago; 04.04.2012 в 00:17.
Vago вне форума Ответить с цитированием
Старый 04.04.2012, 13:17   #5
Melfa
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 14
По умолчанию

Программиста, который составлял эту программу, уже действительно нет в живых... так что избавлять не придется) в общем, все это действительно страшно, ужасно непонятно...
Melfa вне форума Ответить с цитированием
Старый 04.04.2012, 13:52   #6
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

"Двадцать лет - немалый строк!". Тех, кто меня учил моей профессии, тоже уже, к сожалению, немного осталось...

Ежели по делу, то, как я понимаю, у Вас в Фортран-программе имеется огроменного размера COMMON (или даже куча COMMON-ов), которые в чистом Фортране заполнялись при вводе, а теперь, как подумаешь, что всё это нужно запихнуть в список параметров, так страшно становится. Как получить доступ к фортрановским общим областям из Си я могу Вам рассказать (или почитайте здесь), про Паскаль не знаю ничего.

Дубоватый, но работающий (и на Вашем уровне - приемлемо-безболезненный) вариант: не пытаться ничего пихать в параметры, пускай Фортран как читал их файла, так и читает, а Паскаль, просто, пусть этот файл в нужном формате перед вызовом Фортрана готовит.
Vago вне форума Ответить с цитированием
Старый 04.04.2012, 14:09   #7
Melfa
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 14
По умолчанию

Как я уже писала вначале, программа эта состоит из 9 подпрограмм. В начале каждой подпрограммы,в виде комментария, написан список входящих параметров и, собственно, что эти параметры обозначают. Потом уже в тексте, как вы и написали, идет куча COMMONов... Вообще, для чего они нужны? Мне бы как-нибудь на пальцах понять, что с ними делать... да, и еще не совсем ясно как все же из 9 подпрограмм сделать единую dll... это вообще возможно?
Melfa вне форума Ответить с цитированием
Старый 04.04.2012, 14:28   #8
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Головная программа имеется?.. Построить из этих девяти подпрограмм exe-шник удалось?.. Запустить его получилось?..
Vago вне форума Ответить с цитированием
Старый 04.04.2012, 14:36   #9
Melfa
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 14
По умолчанию

Работающий exe-ик имеется. Вообще программа рабочая, все что нужно считает По моим представлениям головная программа имеется, т.к. она использует данные остальных, и именно она выдает конечный результат) но это только мое представление...
Melfa вне форума Ответить с цитированием
Старый 04.04.2012, 14:46   #10
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Головная программа имеется, иначе exe-файл не построился бы

Тогда скажите, какою Вы видите роль Делфи после отработки Фортран-программы? Будете строить графики по насчитанным данным?
Vago вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание fortran dll для c++ Davlet M Помощь студентам 31 06.11.2011 10:34
Delphi Fortran DLL передача процедуры в качестве параметра gimlis Помощь студентам 1 23.03.2011 22:52
создание fortran dll для c++ Davlet M C++ Builder 3 28.02.2011 11:45