【发布时间】:2021-04-07 10:38:35
【问题描述】:
如何发送int数组:
int *pars = new int[4];
pars[0] = 87675;
//...
pars[3] = 1024;
PostMessage(?);
然后正确接收并清除内存:
LONG OnMessage(WPARAM wParam, LPARAM lParam) {
//?
}
一切都在一个过程中。
【问题讨论】:
-
一种方法是发帖时
new,回复时delete。这不是一个好方法,但这是win32。或者,如果可以的话,创建一个全局/单例来存储数据 -
WM_COPYDATA可能是跨进程的一种方法。否则,我有时只是将 appclass 用作两者之间的过渡 - 取决于应用程序的上下文和需求。 -
在一个过程中(我更新了帖子)。
-
我想说也许你想考虑一下你是想使用 PostMessage 还是 SendMessage?如果您使用 SendMessage,您可以在发送例程中管理内存清理,而接收方不必清理。此外,SendMessage() 将其“现在”发送,而 PostMessage 将其放入队列并在您泵送消息循环并到达该消息时处理它。但是,只有您自己确切地知道使用发送而不是发布是否会更好。
标签: c++ visual-c++ mfc postmessage