gpt4 book ai didi

windows - 如何处理 Windows 消息中动态分配数据的生命周期?

转载 作者:可可西里 更新时间:2023-11-01 14:15:42 25 4
gpt4 key购买 nike

简单任务:发送带有动态分配数据的 Windows 消息,例如任意长度的字符串。您将如何管理释放这些数据的责任?

Windows 消息的接收者可能负责释放此数据。但是:您如何保证所有消息都将被实际接收到,从而释放链接数据?想象一下接收器正在关闭的情况,因此它不会再处理它的消息队列。但是,消息队列仍然存在(一段时间)并且仍然可以接受消息,这些消息将不再被处理。

谢谢!

最佳答案

PostMessage返回一个 BOOL 告诉您消息是否已发布。这通常已经足够好了,因为您的窗口在收到 WM_DESTROYWM_NCDESTROY 消息之前应该是有效的。调用 DestroyWindow 后(发送这些消息)您应该无法再次成功调用 PostMessage。

现在,如果您的 PostMessage 返回 FALSE,必须清理。如果没有,则窗口过程必须清理。不要将必须清理的消息发送到可能无法处理它们的随机窗口。实际上,不要向您不处理的任何窗口发送任何 WM_USER + x 消息。

关于windows - 如何处理 Windows 消息中动态分配数据的生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3052301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com