在64位操作系统上编译Delphi 7中的DLL会导致64位DLL吗?

时间:2011-06-10 19:15:34

标签: delphi delphi-7

正如标题所示!

我正在尝试获得64位dll

4 个答案:

答案 0 :(得分:28)

没有

答案 1 :(得分:8)

所有已发布的Delphi版本在16位Delphi 1之后发出32位目标。目前你的选择是:

  1. 等到即将发布的64位Delphi版本。我们预计今年会有一段时间,但是你的port will be non-trivial
  2. 端口到FreePascal。同样,一个非平凡的端口。
  3. 移植到完全不同的语言:比移植到Free Pascal更多的工作。
  4. 继续运行32位代码。

答案 2 :(得分:7)

不。 Delphi 7于2002年发布;第一款AMD64处理器于2003年发布.Delphi 7无法知道如何生成64位代码。

答案 3 :(得分:2)

编译程序意味着将源文件转换为CPU操作码(更重要的是,它必须生成可在其设计的操作系统上运行的可执行映像,尊重OS ABI - 应用程序二进制接口)。每种类型的CPU都有自己的一组操作码,即使Intel x86架构在16位,32位和64位操作码之间有许多相似之处,也存在足够的差异,ABI总是不同。

创建64位exe / dll意味着使用新的64位ABI生成64位操作码,为此必须编写编译器以“知道”它们,编译器可以做什么由编译器如何定义本身是编写的,而不是由运行它的系统编写的。 Delphi 7编译器“不知道”关于64位CPU和exe / dll ABI,从而无法生成它。这对Delphi XE来说也是如此。下一个版本应该是第一个带有64位编译器的版本,您可以等待它,或者如果您匆忙有一些部分兼容的编译器,如FPC。