ДОС-библиотека не работает с новым линкером :-(

Тема в разделе "WASM.WIN32", создана пользователем stbzh, 20 окт 2004.

  1. stbzh

    stbzh New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    16
    Адрес:
    Ukraine
    Здравствуйте

    Вопрос следующий:

    Существует исполняемый файл, скомпилированный и собранный старым ДОС Фортраном.

    Необходимо было изменить формат вывода и еще кое что по мелочи. Исходный код есть.

    Но возникла одна проблема: в коде вызывается подпрограмма, которая содержится в прилинковываемой библиотеке.

    Исходников к библиотеке нет, есть только сама библиотека, но при попытке подключить ее в проект современного Digital Fortran 6.0, пишется, что файл поврежден.

    Я пытался извлечь obj-файл нужной мне подпрограммы и собрать с ним: выдывалось сообщение о преобразовании в COFF формат, а потом опять про поврежденность или неправильный формат файла.

    Пришлось все полностью компилировать и собирать в ДОСе, загружаясь с дискеты!

    Ощущение после нескольких перезагрузок туда и обратно (из Windows 2000 в ДОС универсальной загрузочной дискеты) - незабываемое.

    Сам exe-шник, собранный в ДОС, работает под NT5 прекрасно.

    Так что, можно ли как то вернуть к жизни для современного фортрана старую библиотеку?

    Есть ли инструменты, читающие старый формат и преобразующие его в новый?
     
  2. ava

    ava New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2003
    Сообщения:
    169
    Digital Fortran, наверное, 32-хразрядный и под Windows, а старая библиотека - 16-тиразрядная и под DOS :)
     
  3. stbzh

    stbzh New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    16
    Адрес:
    Ukraine
    Безусловно

    это и так понятно

    может я недостаточно определенно поставил вопрос?

    уточняю - как с этим бороться???

    библиотека нужна для работы - это не прихоть
     
  4. ava

    ava New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2003
    Сообщения:
    169
    Мда... stbzh, чтобы получить ответ, нужно задать правильный вопрос. Хоть бы уточнил, как именно ругается твой фортран, и для какой платформы предназначена новая программа.

    Хотя, в чем бы ни заключалась проблема, самое разумное решение - воссоздать исходный код библиотеки (или хотя бы нужной подпрограммы) и перекомпилировать ее новым фортраном >:)
     
  5. stbzh

    stbzh New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    16
    Адрес:
    Ukraine
    опять же трудно не согласиться

    Вот как ругается Digital Visual Fortran (из Integrated Development Enviroment 6.0 от MS): file is corrupted or have invalid format или что то в этом роде.

    Выхожу из системы, загружаю ДОС с дискеты, нахожу на диске стрый фортран (компилятор версии 5, линкер версии 3) и в нем все замечательно компилирую и собираю. полученный exe-файл (подчеркиваю - скомпилированный и собранный под ДОСом в старом фортраном)чудесно работает под Windows 2000 Professional.

    если бы была возможность найти исходный текст подпрограммы входящей в эту библиотеку - я бы не стал отвлекать людей ерундой.

    воссоздать код? это сделать снимок памяти во время выполнения и разбирать команды процессора?
     
  6. ava

    ava New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2003
    Сообщения:
    169
    Судя по всему, ты безуспешно пытаешься создать виндовую программу. В этом случае поможет только воссоздание кода нужной подпрограммы. И снимок памяти тут совсем не нужен. Если ты знаешь, что делает недостающая подпрограмма, то ты легко сможешь написать новую, делающую то же самое. Ну а если не знаешь, тогда тебе уже ничто не поможет.