Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi AsyncPro和64位_Delphi_Win64 - Fatal编程技术网

Delphi AsyncPro和64位

Delphi AsyncPro和64位,delphi,win64,Delphi,Win64,我正在运行Delphi XE8并安装了适用于VCL 1.0的GetIt AsyncPro。当我编译32位的应用程序时,它运行良好,但在64位时失败。 失败是: [dcc64 Error] OoMisc.pas(2771): E2065 Unsatisfied forward or external declaration: 'Trim' 当我打开OoMisc.pas时,会看到: {$IFNDEF Win32} function Trim(const S : string) : string;

我正在运行Delphi XE8并安装了适用于VCL 1.0的GetIt AsyncPro。当我编译32位的应用程序时,它运行良好,但在64位时失败。 失败是:

[dcc64 Error] OoMisc.pas(2771): E2065 Unsatisfied forward or external declaration: 'Trim'
当我打开OoMisc.pas时,会看到:

{$IFNDEF Win32}
function Trim(const S : string) : string;
{$ENDIF}

Trim
功能似乎未定义。该单元的uses子句中确实有
SysUtils

我敢打赌,当使用
Win32
来区分
Win16
时,这是Delphi 1的遗物。您可以安全地删除这些行。

AsyncPro仅支持Win32平台。它不能按Win64位的原样使用

它包含大量32位内联ASM代码,必须用Pascal代码替换或移植到64位ASM代码。除此之外,可能还有其他与Win64位平台不兼容的地方

如果应用程序包含内联汇编(ASM)代码,则需要 检查ASM代码并进行以下更改:混合 64位中不支持带有Pascal代码的汇编语句 应用。将汇编语句替换为Pascal代码或 函数完全用汇编语言编写

将汇编代码从IA-32移植到Intel 64不能简单地通过 复制代码。考虑架构细节,例如 指针的大小和对齐。您还可以咨询 新指令的处理器手册。如果要编译相同的 针对不同体系结构的代码,使用条件定义。参见使用 “使用内联程序集”中跨平台代码的条件定义 代码。”

RAD Studio通过SSE4.2和AMD 3dNow支持Intel x86,并且 x64,Intel/AMD通过SSE4.2


更新:

Johan Bontes提供了AsyncPro的Win64端口:

我的Github上有一个Win64版本:

它可以编译,但我还没有 能够全面地测试它。如果您有任何疑问,请随时提出问题 卡在任何地方


我将AsyncPro转换为XE8,但它只支持Win32。

OoMisc.pas有一个
Trim
函数,该函数已从实现部分删除。然而,有人忘记将其从接口部分移除。这对x32来说并没有什么坏处,因为它在$IFNDEF中。 没有为x64定义Win32,因此编译器会抱怨。这个特殊问题的解决方案是删除以下3行,这3行是Delphi 1.0的

{$IFNDEF Win32}
function Trim(const S : string) : string;
{$ENDIF}

当然,这并不能使AsyncPro与x64兼容,因为还存在其他问题。

我尝试删除函数定义,但后来又出现了一系列与之无关的错误。一定是别的原因。有人能够用64位应用程序编译ASPRO吗?感谢您对64位版本的介绍。我试试看