Delphi XE2 удалил функцию IsWinNT? - PullRequest
0 голосов
/ 02 декабря 2011

Портирование на XE2, и у меня есть строка IsWinNT, которая была скомпилирована в 7 и Delphi 2009 и никогда раньше не вызывала у нас болтовни.

Я не уверен, какова цель такой функции, но была ли она удалена или перемещена?

и что такое сопоставимая функция?


Боже мой, это было в Virtual Trees har.Извините, ребята, -1 для меня.Бесплатные +1 на дом

Ответы [ 3 ]

6 голосов
/ 02 декабря 2011

Я не знаю такой функции, но вы можете использовать этот код

if Win32Platform = VER_PLATFORM_WIN32_NT then 

FYI Delphi XE2 работает только в системах на базе WinNT

5 голосов
/ 02 декабря 2011

В Delphi 2009 нет функции IsWinNT. Кроме того, нет функции Windows API с таким именем. Скорее всего, вы запутались: возможно, IsWinNT был частью какой-то сторонней библиотеки, которую вы использовали?

В любом случае, если вы ориентируетесь только на платформу Windows, вы можете реализовать эту функцию как

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

, так как каждая версия Windows начиная с (и включая) XP была основана на NT.

3 голосов
/ 02 декабря 2011

Я не могу найти эту функцию ни в одном из моих Delphi (D6, D2010, DXE2).Я бы проверил на NT так:

Win32Platform = VER_PLATFORM_WIN32_NT

Этот тест немного избыточен на XE2, так как он больше не поддерживает целевые версии Windows, отличные от NT.На самом деле я в последнее время не пробовал запускать исполняемый файл XE2 на Win9x, поэтому я не знаю, происходит ли сбой, когда вы это делаете..Например, чтобы проверить, что вы работаете в Windows XP или выше, вы просто должны сделать:

if (TOSVersion.Platform=pfWindows) and (TOSVersion.Check(5, 1)) then
  ...
...