На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
В этом разделе можно создавать темы, которые относятся к поколению 32-битных компиляторов.
Здесь решаются вопросы портирования кода из старого доброго Турбо Паскаля в FPC, TMT, VP, GPC компиляторы, а также особенностей программирования на них для Windows/Linux и других ОС.
Указывайте тип компилятора, его версию, а также платформу (Windows/Linux/..) компиляции, другими словами, Target.
Модераторы: volvo877
Страницы: (3) 1 2 [3]  все  ( Перейти к последнему сообщению )  
> Переносим код из Турбо Паскаля
    Переносим код из Турбо Паскаля


    Давайте здесь будем помогать людям переносить свои программы из Турбо Паскаля (графику, Turbo Vision). Если у кого есть проблемы с портированием, опишите подробно проблему.
    Важно: не забудьте также указать тип компилятора и его версию.
    Большие куски текста не вставлять! Можно показать лишь часть кода. А если этого недостаточно, то присоедините архив к сообщению.

    Добавлено
    Советы:
    Чтобы программы переносились легко, надо
    • Писать их на чистом Паскале, и не смешивать их со встроенным ассемблером. Плохой пример - графика в режиме 13h с применением ассемблерных процедур
    • Применять структурное программирование: чётко разбить всё по процедурам и на модули. Желательно, всё же, использовать стандартные.
    • Не обращаться напрямую к памяти и портам.
      Насколько я понимаю, это не Турбо Вижн, а ObjectsWindows (OWL) - это разные вещи.
      Виртуальный Паскаль поддерживает OWL?
        А как быть?
          sashat, ты пробовал откомпилировать демку CALC или OWLCHESS?
          Из VP Manuals:
          Цитата
          Object Windows Library (OWL)

          VP includes a patch with which the OWL library source code can be made VP-compatible. OWL support is available for Win32 targets only. The original source code for OWL (required to make use of this compatibility in Virtual Pascal) is included in Borland Pascal and Borland Delphi v1. Additionally, 32-bit OWL programs require the file BWCC32.DLL in order to run. This DLL is included with Borland C v4.x and higher, and should be widely available for download from the Internet.

          Using the ported version of the OWL library source files, it is relatively easy to recompile 16-bit OWL applications written with Borland Pascal for Windows to 32-bit Windows.

          Two examples of OWL compatibility (from Borland Pascal) are included as executables: CALC and OWLCHESS; for copyright reasons, the required BWCC32.DLL file is not included.

          A few special considerations are warranted when compiling OWL: Define the conditional define OWL, and recompile the RTL, particularly including the Objects unit. In OWL, some of the functions are implemented differently than for Turbo Vision.

          Also note, that while OWL programs may compile with no changes, the differences in messages between Win16 and Win32 may mean that the programs do not work, and some work will be required to find and remove the problems.


          Добавлено
          Да и, вообще, желательно, чтобы ты прикрепил архив ZIP с твоей программой или коротким примером, который должен работать.
            Вот моя программа. :wub:
            Заранее прошу сильно ногами не пинать. Это мой первый опыт написания программы под windows.
            Прикреплённый файлПрикреплённый файлAL.ZIP (7.3 Кбайт, скачиваний: 304)
              sashat
              Глянул я на этот исходник...
              Во-первых, для ознакомления программирования под Windows взял бы исходник полегче.
              Во-вторых, при компиляции VP не находит кучу всяких модулей.
              В третьих, а зачем тебе именно эта программа? Поставь себе задачу попроще. ;)

              Добавлено
              Можешь заглянуть в тему напоминающее OWL.
                Во первых это моя первая программа под Windows? написана еще под BP 7.0/
                Dj вторых эти часики работают у меня уже мнадцать лет и я к ним привык :)
                А насчет модулей, то у меня находит все, только компилить нехочет :(
                  У меня отсутствуют модули WinProcs, WinTypes, ODialogs
                  и возникают проблемы при самостоятельной компиляции исходников (несовместимости). Прикрепи, если можешь, ZIP с этими модулями. Ещё лучше, со всеми, которые участвуют в той программе (*.vpi).
                    Цитата Romtek @
                    У меня отсутствуют модули WinProcs, WinTypes, ODialogs
                    и возникают проблемы при самостоятельной компиляции исходников (несовместимости). Прикрепи, если можешь, ZIP с этими модулями. Ещё лучше, со всеми, которые участвуют в той программе (*.vpi).

                    romtek, проблемы на 2/3 не существует — при установке
                    ExpandedWrap disabled
                      uses WinProcs, WinTypes
                    компилятор должен подключать модуль Windows (если он все же ругается, надо сделать соответствующие установки в опциях или напрямую подключать uses Windows).
                    Сообщение отредактировано: ZenIA -
                    А Вам ничего испортить не надо?
                      ZenIA
                      Тогда попробуй откомпилировать файл из сообщения №15.
                        У меня нет модулей OWL, и вообще эта система мне не нравится так, как даже если компилятор поддержмвает синтаксис BP, это не означает, что и структура DMT у него аналогичная.

                        Ps Sashat, а где исходник ресурса?
                        Сообщение отредактировано: ZenIA -
                        А Вам ничего испортить не надо?
                          Дополнительную информацию о портировании в Free Pascal можно узнать в FreePascal.ru: Переводы -> Перенос кода из Turbo Pascal
                            Free Pascal:
                            Для совместимости с Турбо Паскалем нужно включить директиву {$MODE TP}. Если вы её не включите, компилятор будет считать тип integer как longint (одна из его особенностей) и тому подобное.

                            Есть демо-программы из поставки с компилятором, которые не скомпилируются и вы сразу начнёте проклинать создателей компилятора. А зря. Некоторым программам следует добавить вначале вышеупомянутую директиву {$MODE TP}, если программу спортировали из Турбо Паскаля. Другим - директиву {$MODE DELPHI}, если программу спортировали из Дельфи.

                            Подробности тут: $MODE : установить режим совместимости для компилятора
                            Сообщение отредактировано: Romtek -
                              Добрый день Подскажите пожалуйста как меня старую программу которой написано на Turbo Pascal ver 5,5 переписать на новый FPC или LAZARUS

                              Я конечно новичок в вопросах программирования,Так что извините если что то не так.

                              Значит программа была написана на Turbo Pascal версия 5,5 а потом через эмулятор
                              DOSBOX чтобы работала Windows 7.

                              Ну-ка скажи как вы понимаете работает она не очень моис плохо рабтает принтер не работаеть то есть печатать нельзо резултаты (нтиквариат)
                              знете мне бы хотелось бы как бы ты новые формы новый новый вид передать программу?

                              Я конечно в гоголе много и долго там это всего вариантов я начитал или меня через lazarus которая Нет компилятора у него там Free Pascal compiler.

                              Я конечно не знаю какой лучший вариант может вы подскажете как легче и лушее и скорее ю
                              в этой программы есть математике формли и ураванения ?

                              То есть с моим маленьким и скромным опытом я могу ли я просто использовать копиравть и всавить старый код в лазарус или фрее паскал.
                              И на что мне обратить внимания то есть надо что еще дабавить в код и что можно удалить чтби работала все верно .
                              И из чего начать.
                              В программе есть фаил с окончанеим ( .pas)




                              скопировать его кот старый и прилепить под новой программы передать эту программу новые божеский вид современной скажи.


                              Я читал разные источники по документации или у неё не совсем понял где точно что надо делать
                              друзья нашёл коссовский предложение предложение Говори вот Turbo Pascal and компияция очень проста.
                              Но если честно я никак не мог разобраться как.


                              Так что посоветовать его в лазарусе или фрее паскал
                              Было бы хорошо если бы подсказали Как быть для чайников то есть там я нашел в докментации что надо через Консульская преиложения в лазарисе
                              Я нашел это вверху где проект но выбраю и дальше просто скапиравать и вставить но я сделал но и вышла окно черная я правада не все программу скапиравал а трлько один фаил( .pas)
                              Подскажите пожлйуства что я не так делаю .

                              И еще моменть нашел в гогеле тоже что в FPC надо вести {tp mode}

                              Но где это найти не знаю
                              И что дальше также ккапирават и всатвить или еще что надо

                              Заранее благодарен за ваше восприятие и понимание неопытного человека.
                                Вот фото к программе
                                Прикреплённый файлПрикреплённый файлUnbenannt.PNG (30,77 Кбайт, скачиваний: 488)
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) 1 2 [3]  все


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1146 ]   [ 19 queries used ]   [ Generated: 15.11.19, 12:15 GMT ]