根据MSDN
返回值指定结果 消息处理;这取决于 在发送的消息上。
我知道它被定义为
typedef LONG_PTR LRESULT;
意味着它在64位机器上将是8个字节,但它没有!
有没有人知道是否可以安全地假设只使用了较低的4个字节并将其存储为INT
(例如)。
答案 0 :(得分:4)
不,它不安全,因为返回值是由发送的消息和处理程序定义的。
如果您控制处理程序和消息然后它是可能的,在一般情况下它是不安全的。
詹姆斯
答案 1 :(得分:1)
不,一般不安全。不要假设垂头丧气。另外,使用/ RTCc编译代码非常有用,可确保在运行时声明无意的强制转换。
答案 2 :(得分:1)
绝对不安全。如果消息返回确实是指针,则指针很可能设置其第33位 - 特别是在具有> 4GB内存的计算机上。