Delphi警告 - W1002符号'FileSetDate'特定于平台

Cha*_*iga 18 delphi

当我在Delphi 2006下编译我的应用程序时,我收到以下警告[Pascal警告] - W1002符号'FileSetDate'特定于一个平台

我该怎么做才能抑制这个警告?

代码

MyLastError:= FileSetDate( Files[ i ].Handle, DateTimeToFileDate( arcDate ) );
Run Code Online (Sandbox Code Playgroud)

Too*_*the 25

虽然DR的答案解决了警告,但这不是正确的解决方案.

您应该使用与平台无关的FileSetDate版本:

function FileSetDate(const FileName: string; Age: Integer): Integer; overload;
Run Code Online (Sandbox Code Playgroud)

也在SysUtils.


Dan*_*ski 24

1)在项目选项中,您可以选择要查看的编译器消息.如果您不关心平台独立性,您可以在那里关闭平台警告.

2)另一种方法是禁用代码的某个部分的警告:

{$WARN SYMBOL_PLATFORM OFF}
// Your code
{$WARN SYMBOL_PLATFORM ON}
Run Code Online (Sandbox Code Playgroud)

有关选项的完整列表,请查看主题为'$ WARN'的Delphi帮助文件

3)最后一种方式是添加

{$WARNINGS OFF}
// Your code
{$WARNINGS ON}
Run Code Online (Sandbox Code Playgroud)

但这很危险,因为所有的警告都会受到抑制.

4)此外,正如其他答案已经建议的那样,你可以切换到平台独立变体,FileSetDate它适用于文件名(即字符串),但据我所知,这不是你的问题.


And*_*den 8

您可以关闭平台单元和平台符号编译器警告.它们已过时(默认情况下在Delphi 2009中禁用).当有一个Delphi for Linux(Kylix)时,它们被引入.他们不再有意义了.特别是用Delphi Prism替换Delphi.NET.您可以在"项目选项"对话框(编译器消息)中为整个项目关闭它们.

  • 实际上这不再是真的了.使用最新版本的Delphi,可以编译Win32,Win64,Mac,iOS和Android ......这个警告再次使用它. (2认同)