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


Автор: IAO 11.6.2010, 06:56
Добрый день! хотелось бы проконсультироваться по следующему вопросу:
первое знакомство с dll в фортране: решила создать динамическую библиотеку как написано в книге Артёмова "фортран-основы программирования", описание дано пошаговое, поэтому ошибки исключены, всё компилируется без замечаний, однако при компиляции файла в проекте должны создаваться файлы *.dll *.lib *.exp , а мой компилятор создаёт только *.dll ( компилятор Compaq Visual Fortran 6.0)
в итоге библиотека не вызывается из другого проекта.
подскажите пожалуйста, в чём может заключаться проблема???

Автор: FCM 11.6.2010, 09:26
Так бывает, если не задана или неправильно задана директива
Код

!MS$ATTRIBUTES DLLEXPORT :: ...

или
Код

!DEC$ATTRIBUTES DLLEXPORT :: ...

(PS
Цитата(IAO @  11.6.2010,  06:56 Найти цитируемый пост)
однако при компиляции файла в проекте должны создаваться файлы *.dll *.lib *.exp

При компиляции будет создан только объектный файл, а три вышеуказанных файла создаются при построении (компоновке) проекта)

Автор: FCM 11.6.2010, 09:56
Чтобы использовать dll в другом проекте, необходимо обеспечить доступность 
1) .lib-файла на этапе компоновки.
2) .dll-файла на этапе выполнения (например, поместить его в папку с использующим его .exe-файлом)

Автор: VVV13 30.5.2013, 11:21
аналогичная проблема (compaq 6.5, пакет Multiple Precision Computation, David M. Smith, f90-библиотека FM) 
FM-пакет состоит из 3-х файлов (в порядке ссылок друг на друга):
FMSAVE.f95
FM.f95 
FMZM90.f95
я положил их в этом порядке в один файл и в compaq 6.5 сделал две версии (файлы) библиотеки - *.dll и *.lib. 
Положил обе версии в директорию Debug и туда, где исходник программы. 
Компиляция тест-программы ни для той ни для другой версии не идет: "Error in opening the Library module file." 
Если положить все mod-модули в директорию Debug или сложить все сорсы библиотеки в правильном порядке  
в один файл с тест-программой, то все нормально транслируется и считается. 
Как правильно сделать библиотеку?   
Библиотека довольно большая и долго транслируется.
Спасибо

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