Windows中的BOOL:4字节,是LongBool
TRUE = -1:即DWORD(-1),同时任何非零值都为TRUE;
FALSE = 0:即DWORD(0)
4字节的意思就是在强制转换时,这句BOOL(INT64($1122334400000000))为False,因为强制转换时从低位数据取值的(Big Endian的CPU规则当然就是相反)
delphi中Boolean
这个非常值得注意的类型,Delph默认的Boolean是用ByteBool,所以在强制转换类型时下面都是False
Boolean(0) :False
Boolean(256) :False
Boolean(512) :False
Boolean(768) :False
Boolean(1024) :False
....
........
................等等,也就是只要最d低位1字节为0,则为False,反之如果不为0则为True,
C语言中可以使用如下判断整型
int i=256;
if (i) {};
但是delphi中要判断一个整型数是否为0,通常情况下需要用<>,=之类的符号
所以上面的写法正确应该是
Boolean(0<>0) :False
Boolean(256<>0) :True
Boolean(512<>0) :True
....
........
...............
C++中的bool
TRUE : <>0
FALSE : 0