Question

à XE2 et Porting j'ai une IsWinNT ligne qui a compilé dans 7 et Delphi 2009 et ne nous a donné aucune Guff avant.

Je ne sais pas quel est le but d'une telle fonction est, mais il a été retiré ou déplacé?

et ce qui est une fonction comparable?


Mon mauvais, il était dans les arbres virtuels HAR. Désolé les gars -1 pour moi. Gratuit + 1 est la maison

Était-ce utile?

La solution

Dans Delphi 2009, il n'y a pas de fonction IsWinNT. De plus, il n'y a pas de fonction de l'API Windows nommé comme ça. Très probablement, vous êtes confus:? Peut-être IsWinNT faisait partie d'une bibliothèque 3ème partie que vous avez utilisé

Quoi qu'il en soit, si vous ne ciblez la plate-forme Windows, vous pouvez mettre en œuvre la fonction

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

depuis toutes les versions de Windows depuis (et y compris) XP a été basé sur NT.

Autres conseils

Je ne sais pas cette fonction, mais vous pouvez utiliser ce code

if Win32Platform = VER_PLATFORM_WIN32_NT then 

Pour votre information Delphi XE2 ne fonctionne que sur les systèmes WinNT

Je ne peux pas trouver cette fonction dans aucun de mes de Delphi (D6, D2010, DXE2). Je tester NT comme ceci:

Win32Platform = VER_PLATFORM_WIN32_NT

Ce test est un peu redondant sur XE2 car elle ne prend plus les versions non ciblant NT de Windows. Je ne l'ai pas fait essayé de courir un produit XE2 exécutable récemment sur Win9x donc je ne sais pas si elle échoue ou pas quand vous le faites.

Dans XE2 vous pouvez maintenant utiliser TOSVersion. Par exemple, pour vérifier que vous exécutez sur Windows XP ou jusqu'à vous faire simplement:

if (TOSVersion.Platform=pfWindows) and (TOSVersion.Check(5, 1)) then
  ...
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top