Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Приведет ли компиляция DLL в Delphi 7 к 64-битной ОС к 64-битной DLL?

Автор вопроса: JonОтветов: 3

Как следует из названия!

Я пытаюсь получить 64-битную dll

  • Технически не должно быть причин, по которым вы можете скомпилировать 64-битную dll на 32-битном компьютере. Почему бы вам просто не провести небольшое исследование о том, как скомпилировать dll Delphi, чтобы это была 64-битная dll. Security Hound 10.06.2011
  • Компилятор - это, по сути, компьютерная программа, которая принимает текстовый файл в качестве входных данных и создает файл EXE. Программа следует пошаговому алгоритму создания EXE из текстового файла. Но компилятор - это одна и та же программа независимо от того, на какой ОС он работает. Andreas Rejbrand 10.06.2011
  • Вам потребуется версия Delphi/компилятора, которая знает, как компилировать в 64-битную версию - Delphi 7, конечно же, не умеет.... просто запустите компилятор на 64-битной бит ОС не помогает вообще marc_s 10.06.2011
  • Выпечка торта в голубом доме даст голубой торт? dthorpe 10.06.2011
  • @dthorpe: В зависимости от интенсивности цвета торт может выглядеть голубоватым. :) Andriy M 10.06.2011
  • Сделает ли хранение старых ржавых труб в морозильнике их съедобными? @dthorpe, краска со стен может подойти :) Premature Optimization 10.06.2011

delphidelphi-7

Ответы

Ответ 1 · рейтинг 8 · Ernest Friedman-Hill

Неа. Delphi 7 был выпущен в 2002 году; первый процессор AMD64 был выпущен в 2003 году. Delphi 7 никак не умеет генерировать 64-битный код.

Ответ 2 · рейтинг 8 · David Heffernan

Все выпущенные версии Delphi, следующие за 16-битной Delphi 1, выдают 32-битные цели. На данный момент ваши варианты:

  1. Подождите до предстоящего 64-битного выпуска Delphi. Мы ожидаем, что это произойдет в этом году, но ваш порт не будет -тривиально.
  2. Перенос на FreePascal. Опять нетривиальный порт.
  3. Перенос на совершенно другой язык: еще больше работы, чем перенос на Free Pascal.
  4. Продолжайте работать с 32-битным кодом.

Ответ 3 · рейтинг 2 · Community

Компиляция программы означает перевод ваших исходных файлов в коды операций ЦП (и более того, она должна генерировать исполняемый образ, который может работать в ОС, для которой он был разработан, с соблюдением OS ABI - двоичного интерфейса приложения). Каждый тип ЦП имеет свой собственный набор кодов операций, и даже если архитектура Intel x86 имеет много общего между 16-, 32- и 64-битными кодами операций, различий достаточно, и ABI все равно отличается.

Создание 64-битного exe/dll означает создание 64-битных кодов операций с использованием также нового 64-битного ABI, и для этого должен быть написан компилятор, чтобы "знать" их, то, что может делать компилятор, определяется тем, как написан сам компилятор. , а не системой, в которой он запущен. Компилятор Delphi 7 "не знает" о 64-битных процессорах и exe/dll ABI, и поэтому не может его сгенерировать. Это справедливо и для Delphi XE. Следующая версия должна быть первой с 64-битным компилятором, вы можете подождать, или, если вы спешите, есть некоторые частично совместимые компиляторы, такие как FPC.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы