-2

XE2 への移植IsWinNTで、7 と Delphi 2009 でコンパイルされた行があり、以前はまったく問題がありませんでした。

そのような機能の目的が何なのかわかりませんが、削除または移動されましたか?

比較可能な機能とは何ですか?


残念ながら、それは Virtual Trees har にありました。申し訳ありませんが、私は-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、使用したサードパーティのライブラリの一部でしたか?

とにかく、Windows プラットフォームのみをターゲットにしている場合は、次のように関数を実装できます。

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

XP以降(およびXPを含む)のすべてのWindowsバージョンはNTに基づいています。

于 2011-12-01T22:13:39.253 に答える
3

Delphi(D6、D2010、DXE2)のいずれにもその関数が見つかりません。次のように NT をテストします。

Win32Platform = VER_PLATFORM_WIN32_NT

XE2 では、Windows の非 NT バージョンのターゲットをサポートしなくなったため、このテストは少し冗長です。最近、XE2 で生成された実行可能ファイルを Win9x で実際に実行しようとしたことがないので、実行したときに失敗するかどうかはわかりません。

XE2 では、 を利用できるようになりTOSVersionました。たとえば、Windows XP 以降で実行していることを確認するには、次のようにします。

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