张
张鸿林
Unregistered / Unconfirmed
GUEST, unregistred user!
Windows.pas定义:
const Invalid_handle_value=dword(-1);
api函数CreateFile()的返回值按定义是 HWnd,也就是longword,属unsigned 32-bit
如果定义一个变量fHandle为有符号整数如Longint,integer等,
fHandle:=CreateFile(...);
如果文件打开失败,则fHandle为-1;
这时想用fHandle<>Invalid_handle_value表示文件打开成功的话将不是您期望的结果
因为Invalid_Handle_value是一个溢出的无符号整型其值为$FFFFFFFF;
我用过一个共享串口组件ATComm32.pas就有这方面的Bug;
所有喜欢使用Windows常量表示的人需要充分注意
const Invalid_handle_value=dword(-1);
api函数CreateFile()的返回值按定义是 HWnd,也就是longword,属unsigned 32-bit
如果定义一个变量fHandle为有符号整数如Longint,integer等,
fHandle:=CreateFile(...);
如果文件打开失败,则fHandle为-1;
这时想用fHandle<>Invalid_handle_value表示文件打开成功的话将不是您期望的结果
因为Invalid_Handle_value是一个溢出的无符号整型其值为$FFFFFFFF;
我用过一个共享串口组件ATComm32.pas就有这方面的Bug;
所有喜欢使用Windows常量表示的人需要充分注意