delphi – 警告:不安全的“TSmallPoint”类型转换为“整数”
我在我的项目中使用这段代码:
var P: TPoint; MyControl.Perform(WM_LBUTTONDOWN,Longint(PointToSmallPoint(P))); 编译器给了我一个警告: [Warning]: Unsafe typecast of 'TSmallPoint' to 'Integer' 但是,Controls.pas中没有任何警告使用相同的代码 – 例如在TControl.BeginDrag方法中: .... Perform(WM_LBUTTONUP,Longint(PointToSmallPoint(P))); Controls.pas中没有看到任何{$warnings off}. 为什么编译器警告我,但是跳过Controls.pas的警告? 编辑:在我的项目选项中 – >编译器消息 – >检查不安全的类型转换(默认情况下未选中). 解决方法
这是因为您在Project->选项 – >编译器消息中选中了不安全的类型转换警告.这是非常安全的取消选中(不安全的类型和不安全的代码上面)(见下文)
我无法重现警告,因为我没有选中不安全的类型.它不再适用. (当Delphi for .NET开发Delphi时,它被添加到Delphi 6或7中,以实现.NET兼容性,以便更容易地编写适用于.NET和Win32的代码;由于Delphi for .NET产品已被停用,所以该警告(和上面的两个)不再适用).这三个警告中的“不安全”使用“不安全”的.NET含义,意思是“不受管理”. 从Delphi 7帮助文件(搜索“编译器更改”)(强调我的):
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |