gpt4 book ai didi

windows - 如何以 64 位 GNAT GPS 的新方式与 Windows 系统调用交互?

转载 作者:可可西里 更新时间:2023-11-01 09:50:25 25 4
gpt4 key购买 nike

我习惯于使用 Win32Ada 库为我为 Windows 创建的终端程序调用系统调用。系统调用足以实现对控制台的控制,但 Ada 标准库中的任何东西都做不到。检查 GPS 社区版的源列表,我发现缺少 Win32Ada。我准备继续使用 Win32Ada,但它的排除(就像几年前 Linux 构建的 POSIX 排除的情况一样)暗示有更好的方法来实现低级接口(interface)。任何人都可以给我最简单的代码或引用我如何以从现在开始支持的方式与 Windows 交互吗?

之前的例子:

pragma Ada_2012;
with Win32;
with Ada.Text_IO;
...

最佳答案

我不确定从 GNAT 社区版中排除 win32ada 库是否意味着它已经过时。该库仍可在 GitHub 上使用并且 README 文件中没有提到过时的内容。您可能只需要自己克隆、构建和安装它。

另请注意,win32ada 似乎针对 32 位和 64 位 Windows。据我所知,32 位和 64 位 Windows 之间的区别归结为所使用的指针的大小。这些指针由 win32.ads 中定义的 ULONG_PTRLONG_PTR 类型表示。它们的大小使用 Standard'Address_Size 定义; GNAT 公开的一个属性。此外,win32ada 链接到名称中带有数字 32 的 user32.dllgdi32.dll 这样的文件与如中所述,针对 32 位或 64 位 Windows这个post .

也就是说,作为替代方案,您可能还想检查 GNAT.OS_Lib。这个包包含对各种 OS 相关设施的抽象(另请参阅 GPS IDE 中的“Help > GNAT Runtime > GNAT > OS_Lib”)。依赖于此包而不是 win32ada 可能会使您的程序在操作系统之间更具可移植性。

关于windows - 如何以 64 位 GNAT GPS 的新方式与 Windows 系统调用交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55766868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com