SergeSerge3leo
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору akaGM Цитата: но это должны делать поставщики гнутого фортрана под конкректную платформу, а не ты... | Open Source и, лично, Ричард Столлман, никому ничего не должен. Как я понял, импортозамещение Intel Fortran, кто сказал, что будет легко? Хотя идея разумная, правильная, надо было купить gfortran от нормальной российской фирмы, а может и от буржуйской, и получать квалифицированную поддержку. Но, наверное, есть причины для "самостроя/самострела в ногу". aur1 Цитата: Ради интереса сделал прогу на С++. Всё сработало. | Стало быть, у Вас ошибка не принципиальная, а по-проще. С чего бы это из одного и того же MINGW g++ грузит, а gfortran нет? Хоть Вы и писали, типа, разрядность, якобы, одинаковая, но kernel32.dll имеется обеих разрядностей, а ваш OKAWSP6.DLL, поди небось, только один одинёшенек. P.S. В конце концов, тем же, WinDBG взять в отладку, поставить точку останова на LoadLibraryA и посмотреть, что в неё передаётся и что она возвращает, и для программы от g++, и для программы от gfortran. Цитата: D:\CDBFortran\Project\f_test_wsp\main.f90|50|Warning: Procedure 'loadlibraryex' called with an implicit interface [-Wimplicit-interface] D:\CDBFortran\Project\f_test_wsp\main.f90|50|undefined reference to `loadlibraryex_'| | Ну, Василий Иванович! Ну, не стоит мне капать расплавленным оловом на голову! Я же Вам написал же: "сотворить интерфейсы для LoadLibraryExA() и GetLastError(), по образу и подобию"! Неужели это так сложно открыть MSDN?! Коды ошибок Вы где смотреть будете? https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibraryexa https://docs.microsoft.com/en-us/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror Что-то в духе: Код: FUNCTION LoadLibraryEx(lpFileName, hFile, dwFlags) BIND(C, NAME='LoadLibraryExA') USE ISO_C_BINDING CHARACTER(KIND=C_CHAR) :: lpFileName(*) INTEGER(C_INTPTR_T), VALUE :: hFile INTEGER(C_INT32_T), VALUE :: dwFlags !GCC$ ATTRIBUTES STDCALL :: LoadLibraryEx INTEGER(C_INTPTR_T) :: LoadLibraryEx END FUNCTION LoadLibraryEx FUNCTION GetLastError() BIND(C, NAME='GetLastError') USE ISO_C_BINDING !GCC$ ATTRIBUTES STDCALL :: GetLastError INTEGER(C_INT32_T) :: GetLastError END FUNCTION GetLastError |
|