COPYDATASTRUCT使用

snookermx 2007-12-27 03:02:13
先贴一下COPYDATASTRUCT在MSDN里的介绍:
COPYDATASTRUCT Members
dwData
Specifies up to 32 bits of data to be passed to the receiving application.
cbData
Specifies the size, in bytes, of the data pointed to by the lpData member.
lpData
Pointer to data to be passed to the receiving application. This member can be NULL.
我的问题是如果把lpData设NULL,然后将cbData当作第二个DWORD来使用,那么接收方在知道lpData为NULL
以后还会不会依然申请一个以cbData为大小的buffer,按理说是不会了,来求证一下。
...全文
1769 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
waruqi 2007-12-28
  • 打赏
  • 举报
回复
cbData为发送数据的大小,lpData=NULL cbData=0
snookermx 2007-12-28
  • 打赏
  • 举报
回复
恩,如果数据多我一定也会定义个结构再发,主要我这次用两个DWORD就足够了,主要就是给接受方一个通知消息,没什么额外的数据传送,所以偷懒了。我试了一下,接收方收到的消息也没问题,只是不晓得有没有分配额外的空间,因为cbData可能是很大一个数,所以有点顾忌。
gnixemos 2007-12-27
  • 打赏
  • 举报
回复


直接定义个结构(包括2个dword)分配在堆上,发送给另外一个程序比较合乎规范

如果lpdata为空,cbdata指定一个值,发送方不知道是如何处理的。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧