AsyncPro和64bit

Set*_*Net 9 delphi win64

我正在运行Delphi XE8并安装了GetIt AsyncPro for VCL 1.0.当我编译32位应用程序但64位失败时,它工作正常.失败的是:

[dcc64 Error] OoMisc.pas(2771): E2065 Unsatisfied forward or external declaration: 'Trim'
Run Code Online (Sandbox Code Playgroud)

当我打开OoMisc.pas时看到:

{$IFNDEF Win32}
function Trim(const S : string) : string;
{$ENDIF}
Run Code Online (Sandbox Code Playgroud)

Trim功能似乎没有定义.该单位确实具有SysUtils其使用条款.

Dal*_*kar 6

AsyncPro仅支持Win32平台.它不能用于Win64位.

它包含大量32位内联ASM代码,必须由Pascal代码替换或移植到64位ASM代码.除了那部分,可能还有其他与Win64位平台不兼容的问题.

将32位Delphi应用程序转换为64位Windows - 内联汇编代码

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

仅通过复制代码就无法将汇编代码从IA-32移植到Intel 64.考虑体系结构细节,例如指针和对齐的大小.您可能还需要查阅处理器手册以获取新的说明.如果要为不同的体系结构编译相同的代码,请使用条件定义.请参阅"使用内联汇编代码"中的跨平台代码的使用条件定义.

RAD Studio支持Intel x86到SSE4.2和AMD 3dNow,对于x64,Intel/AMD到SSE4.2.

使用内联汇编代码


更新:

Johan Bontes提供了AsyncPro的Win64端口:

我在我的Github上有一个Win64版本:https: //github.com/JBontes/AsyncPro

它编译,但我无法理解它.如果您遇到困难,请随时提出问题.


Uwe*_*abe 2

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