На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
В этом разделе можно создавать темы, которые относятся к поколению 32-битных компиляторов.
Здесь решаются вопросы портирования кода из старого доброго Турбо Паскаля в FPC, TMT, VP, GPC компиляторы, а также особенностей программирования на них для Windows/Linux и других ОС.
Указывайте тип компилятора, его версию, а также платформу (Windows/Linux/..) компиляции, другими словами, Target.
Модераторы: volvo877
  
> DLL в ВР и ТМТ , 32-битные и 16-битные
    Короче говоря, вышел такой небольшой, но раздутый спорчик по поводу того, есть ли на свете 16-битные DLLки. Так получалось, что могут быть для Protecdet Mode DOSа. Т.е. при компиляции DLL под BP получается 16-битная.
    Так вот вопрос: на сколько это правда?
      Так получилось, что в модуле WinProcs описаны 16битные версии команд из 16битных DLL винды. Они правда там имеют расширение exe и назваются krnl386.exe users.exe и gdi.exe

      Добавлено
      к тому же при компиляции из бп и не может выйти 32битной дллки, потому что нет в бп 32битных типов данных. Он вобще не использует 32битные регистры к примеру для адресации. Впрочем это не мешает пользоваться теми DLLками, которые делает пас из других языков.
        Вообще то. по-моему BP использует 32битную адресацию в защищенном режиме. :wall:

        Хорошо, ставим вопрос так: скольки битная DLL выходит после компиляции в BP?

        И еще один дополнительный, но не менее важный вопрос: можно ли на TMTP использовать DLL, написанную на BP?
          Цитата
          KiRiK, 18.09.04, 19:01
          можно ли на TMTP использовать DLL, написанную на BP?
          Это, наверно, вопрос совместимости компиляторов. Но, скорее всего, нет.

          Добавлено
          Цитата
          KiRiK, 18.09.04, 19:01
          скольки битная DLL выходит после компиляции в BP?
          16-тибитная
            Цитата
            Romtek, 18.09.04, 15:03
            16-тибитная

            А доказать? :D

            Цитата
            Romtek, 18.09.04, 15:03
            Это, наверно, вопрос совместимости компиляторов. Но, скорее всего, нет.

            А при чем здесь совместимость? В DLL никак не фигурирует синтаксис языка.
              Просьба: Забудьте, что такое БП и что такое 16 бит. Врубите ТМТ паскаль. Даже если дос таргет, он избавит от многих проблем с 16 битной адресацией.
                To Азат, в том все и дело, что мне нужно написать DLL (желательно на BP), а потом ее заюзать на TMT.

                Не надо давать таких советов, в которых и так все понятно. :D
                  Ну извини, KiRiK, не все же в этом форуме такие понятливые как ты.
                    http://www.tmt.com/faq.htm#L14
                    How To Port a 16-bit DLL to a Win32 DLL

                    Добавлено
                    Цитата
                    KiRiK, 18.09.04, 19:48
                    мне нужно написать DLL (желательно на BP), а потом ее заюзать на TMT.
                    Не создавай себе дополнительные проблемы, пиши всё на одном компиляторе (лучше ТМТ).
                      Мой ТМТ не компилит ДЛЛ!
                      Это минус. :wall:
                      Но есть ДЛЛ менеджер.
                      Зто плюс. :)
                      Как им пользоваться я не знаю.
                      Это минус. :huh:

                      Итог - минусов больше. :(

                      Да, а кто переименовал тему? [Romtek: Я переименовал]
                      А зачем? [Romtek: Чтобы тему легче искать было. Тем "DLL" немало, притом она неинформативна.]
                      Теперь понятно.
                      Сообщение отредактировано: KiRiK -
                        если уж возникла такая тема, воспользуюсь случаем- задам вопрос:
                        когда я прописываю строку(чтобы взять proc из DLL)...procedure name1; external 'name' index 1;... при компилировании паскаль выдает ошибку - поставить ";"после external , ставлю ';' -пишет поставить 'end.'
                        В чем же дело? :wall:
                          Цитата
                          Question, 20.09.04, 23:10
                          когда я прописываю строку(чтобы взять proc из DLL)...procedure name1; external 'name' index 1;... при компилировании паскаль выдает ошибку - поставить ";"после external , ставлю ';' -пишет поставить 'end.'
                          В чем же дело?
                          По идее всё правильно. Покажи исходник, может в нём что-то не так.
                            Как импортировать процедуры и функции из DLL с :huh: помощью встроенного Ассемблера?
                              ИМХО, никак.
                              Встроенный асм предназначен для кода, а не деклараций.
                                To Question, зачем тебе это, тем более на встроенном ассемблере?
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0558 ]   [ 16 queries used ]   [ Generated: 9.05.24, 02:45 GMT ]