-2

移植到 XE2,我得到了一条IsWinNT在 7 和 Delphi 2009 中编译的代码,以前从未给我们任何闲聊。

我不确定这样一个功能的目的是什么,但它是被删除还是移动了?

什么是可比较的功能?


我的错,它在虚拟树中。对不起伙计们-1对我来说。免费 +1 的房子

4

3 回答 3

6

我不知道这样的功能,但你可以使用这段代码

if Win32Platform = VER_PLATFORM_WIN32_NT then 

仅供参考 Delphi XE2 仅在基于 WinNT 的系统上运行

于 2011-12-01T22:14:10.507 回答
5

在 Delphi 2009 中,没有IsWinNT功能。此外,没有这样命名的 Windows API 函数。您很可能会感到困惑:也许IsWinNT是您使用的某个 3rd-party 库的一部分?

无论如何,如果您只针对 Windows 平台,那么您可以将该功能实现为

function IsWinNT: boolean;
begin
  result := true;
end;

因为自(包括)XP 以来的每个 Windows 版本都基于 NT。

于 2011-12-01T22:13:39.253 回答
3

我在我的任何 Delphi(D6、D2010、DXE2)中都找不到该功能。我会像这样测试 NT:

Win32Platform = VER_PLATFORM_WIN32_NT

这个测试在 XE2 上有点多余,因为它不再支持以非 NT 版本的 Windows 为目标。我最近实际上并没有尝试在 Win9x 上运行 XE2 生成的可执行文件,所以我不知道这样做时它是否会失败。

在 XE2 中,您现在可以使用TOSVersion. 例如,要检查您是否在 Windows XP 或更高版本上运行,您只需执行以下操作:

if (TOSVersion.Platform=pfWindows) and (TOSVersion.Check(5, 1)) then
  ...
于 2011-12-01T22:15:05.443 回答