karakurt2
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору akaGM Библиотеку можно взять на lavteam(требуется регистрация). Интерфейсов к функциям в источниках нет, они полагаются на соглашения по умолчанию. В случае с Intel Fortran всё компилируется замечательно, но я не могу его использовать на рабочем компьютере из-за всем понятной причины. Для свободно распространяемого gfortran вчера "нащупал" возможность в создании вручную явного интерфейса к подпрограммам на основе информации, приведённой в руководстве для программистов. Код: INTERFACE C C Initialise security system and check user and licence information. C SUBROUTINE MFSINI( PSWORD, PWDLEN, IERR, IERRLS, ERRMES, MESLEN ) * BIND(C, NAME='MFSINI') IMPLICIT NONE !GCC$ ATTRIBUTES STDCALL :: MFSINI INTEGER, INTENT(OUT) :: IERR, IERRLS CHARACTER(LEN=1), DIMENSION(*), INTENT(IN) :: PSWORD CHARACTER(LEN=1), DIMENSION(*), INTENT(OUT) :: ERRMES INTEGER, INTENT(IN) :: PWDLEN, MESLEN END SUBROUTINE MFSINI C C Input arguments: C PSWORD password - may be required depending on implementation. C Must be set to a blank string if no password is supplied. C C Output arguments: C IERR Multiflash error flag C 0 OK C 684 cannot initialise licensing system C 685 consistency check failed C 686 license expired C 687 MF serial number not valid C 688 version limit in license < MF version being used C 689 other licensing system error C 690 no more licenses available C 691 server not running on network C IERRLS error code returned by licensing system C 0 OK C >0 error returned by licensing interface routine C <0 error returned by license system C ERRMES error message returned by license system END INTERFACE | В таком виде вроде бы собирается под gfortran, но до тестирования пока не дошёл... а вот мои попытки "нащупать" правильные ключи для компилятора: Код: @echo off rem mingw32 i686-w64-mingw32-gcc %1 -o %~n1.exe ../mfPVT32.lib rem mingw32 i686-w64-mingw32-gfortran %1 -mrtd -Wall -o %~n1.exe ../mfPVT32.lib mingw32 i686-w64-mingw32-gfortran %1 -o %~n1.exe ../mfPVT32.lib rem mingw32 i686-w64-mingw32-gfortran %1 -o %~n1.exe -L.. -lmfPVT32 -Wl,--add-stdcall-alias,--enable-stdcall-fixup rem mingw32 i686-w64-mingw32-gfortran %1 -o %~n1.exe ../mfPVT32.dll -Wl,--compat-implib | раскомментирована команда, которая работает... | Всего записей: 733 | Зарегистр. 06-12-2003 | Отправлено: 12:23 08-01-2018 | Исправлено: karakurt2, 12:29 08-01-2018 |
|