Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 64位SendMessage API_C++_C_Winapi - Fatal编程技术网

C++ 64位SendMessage API

C++ 64位SendMessage API,c++,c,winapi,C++,C,Winapi,根据MSDN 返回值指定结果 消息处理的流程;视情况而定 在发送的消息上 我知道它的定义是 typedef LONG_PTR LRESULT; 这意味着在64位机器上它将是8个字节,但事实并非如此 有人知道只使用较低的4个字节并将其存储为INT(例如)是否安全吗?不,这不安全,因为返回值由发送的消息和处理程序定义 如果您控制处理程序和消息,那么这是可能的,在一般情况下是不安全的 James不,这不安全,因为返回值由正在发送的消息和处理程序定义 如果您控制处理程序和消息,那么这是可能的,在一般情

根据MSDN

返回值指定结果 消息处理的流程;视情况而定 在发送的消息上

我知道它的定义是

typedef LONG_PTR LRESULT;
这意味着在64位机器上它将是8个字节,但事实并非如此


有人知道只使用较低的4个字节并将其存储为
INT
(例如)是否安全吗?

不,这不安全,因为返回值由发送的消息和处理程序定义

如果您控制处理程序和消息,那么这是可能的,在一般情况下是不安全的


James

不,这不安全,因为返回值由正在发送的消息和处理程序定义

如果您控制处理程序和消息,那么这是可能的,在一般情况下是不安全的


詹姆斯

不,一般来说不安全。不要假定你心情沮丧。另外,使用/RTCc编译代码也很有用,这样可以确保在运行时断言意外强制转换。

不,一般来说,这是不安全的。不要假定你心情沮丧。另外,使用/RTCc编译代码也很有用,这样可以确保在运行时断言意外强制转换。

肯定不安全。如果返回的消息确实是指针,那么指针很可能设置了第33位,特别是在内存大于4GB的机器上。

绝对不安全。如果消息返回确实是一个指针,指针很可能设置了第33位-特别是在内存大于4GB的机器上。

由于内存虚拟化,在内存小于4GB的情况下也可能发生这种情况。由于内存虚拟化,在内存小于4GB的情况下也可能发生这种情况。