Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Fortran > [Tools] Создание dll в Fortran PowerStation v4


Автор: Drozd111 15.11.2009, 16:51
Здравствуйте!!!

Подскажите пожалуйста, как декампелировать dll файл, созданный в Fortran PowerStation v4.0, или хотя бы посмотреть из каких фортрановских файлов его собрали. 

В какой книге описано создание dll файлов в Fortran (пролистал книги Бартеньева, Стесик, Алгазина, но пока ничего не нашел)??

Автор: FCM 15.11.2009, 19:24
1)При создании dll создаются как правило файлы с расширениями lib и exp - посмотри, может в них есть какая-то информация.

2)В Intel Visual Fortran упоминается команда DUMPBIN.
Для получения информации об экспортируемых именах, согласно документации, нужно в командной строке запустить следующее:

DUMPBIN /exports  file.dll

Правда, я попробовал - ничего не получилсь пока. 
Попробуй, может у тебя получится.

3) Если под "декампелировать" подразумевается дизассемблировать, то возможно тебе будет полезна книга  К.Касперски Е. Рокко "Искусство дизассемблирования" , но приводимые там примеры по идентификации различных конструкций высокоуровнего языка по "ассемблерному коду" касаются в основном С/C++.

Автор: FCM 16.11.2009, 12:18
Цитата(Drozd111 @  15.11.2009,  16:51 Найти цитируемый пост)
В какой книге описано создание dll файлов в Fortran (пролистал книги Бартеньева, Стесик, Алгазина, но пока ничего не нашел)??

Создание DLL в Visual Fortran само по себе не так сложно. Нужно выбрать проект соответствующего типа, включить туда исходник с программными единицами, с помощью соответствующих директив указать какие процедуры и данные "'экспортируются". При построении такого проекта будут в частности созданы файлы с расширениями .lib и .dll . Для использования DLL нужно обеспечить доступность lib-файла на этапе компоновки и dll-файла на этапе выполнения. Ну и (насколько помню)  для внешней  процедуры, импортируемой из DLL, нужно задать явный интерфейс, в котором с помощью соотв. директивы указать, что такая-то импортируется из DLL.

Насчет лит-ры: по одной страничке есть, например, в книге Артемова "Fortran: основы программиирования(2007)" и в книге Бартеньева "Visual Fortran: новые возможности(1999)" .
Лучше посмотри систему помощи.
A за глубоким пониманием DLL возможно следует обратиться к литературе на стыке Windows и С/С++ (например, Рихтер "Windows via C/С++", Щупак "Win32 API").

Автор: Drozd111 16.11.2009, 21:59
Спасибо большущее, FCM!!!

Вооружившись новыми знаниями попробую еще раз разобраться в dll файлах.

Автор: FCM 17.11.2009, 09:08
Цитата(Drozd111 @  16.11.2009,  21:59 Найти цитируемый пост)
Спасибо большущее, FCM!!!


Спасибо говорить рано - сначала попробуй извлечь пользу из этой достаточно общей (неконкретной) информации.
Кстати я подредактировал предыдущее свое сообщение.

Автор: Drozd111 16.2.2010, 01:03
Вопрос еще такого рода:

Создал новый проект dll файла, добавил в него необходимые тексты программ, выбрал варианn Release, запустил создание dll-ки, а он мне написал на каждый файл "fatal error C1007"
Посмотрел в хелпах, там есть fatal error F1007, но C1007 нет.

Не подскажите, что это за ошибка такая???

На чужом компьютере почему-то создал этот же dll файл без проблем.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)