社区
Windows SDK/API
帖子详情
PostThreadMessage如何传递字符串数据,以及如何获取传递的数据
linqiu6
2006-08-21 03:03:52
var
astring:string;
如何将astring数据传出,并在收到的线程中解析。
...全文
457
3
打赏
收藏
PostThreadMessage如何传递字符串数据,以及如何获取传递的数据
var astring:string; 如何将astring数据传出,并在收到的线程中解析。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
halfdream
2006-08-21
打赏
举报
回复
方法一,
是转成pchar,但这种方法必须手工处理引用计数.
在发送前增加串的引用计数,不然串的空间会在消息传递中被释放.
在接收后减去引用计数.
方法二,POST以前动态分配内存,把串数据复制过来后,POST这块内存地址.
接收到之后释放空间.
SonicX
2006-08-21
打赏
举报
回复
转成PCHAR传递
还原就用strpas
FigoZhu
2006-08-21
打赏
举报
回复
帮顶,接分。
在C#中Send
Message
和
Post
Message
的参数
传递
在C#中Send
Message
和
Post
Message
的参数
传递
在C#中可以使用Window API提供的Send
Message
和
Post
Message
来
传递
参数。两者的区别简单介绍下:返回值的不同,我们先看一下 MSDN 里的声明: LRESULT Send
Message
( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); BOOL
Post
Message
( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); 其中 4 个参数的意义是一样的,返回值类型不同(其实从
数据
上看他们一样是一个 32 位的数,只是意义不一样),LRESULT 表示的是消息被处理后的返回值,BOOL 表示的是消息是不是
Post
成功。 2、
Post
Message
是异步的,Send
Message
是同步的。
Post
Message
只把消息放入队列,不管消息是否被处理就返回,消息可能不被处理;而 Send
Message
等待消息被处理完了之后才返回,如果消息不被处理,发送消息的线程将一直被阻塞。 3、如果在同一个线程内,Send
Message
发送消息时,由 USER32.DLL 模块调用目标窗口的消息处理程序,并将结果返回。Send
Message
在同一线程中发送消息并不入线程消息队列。
Post
Message
发送消息时,消息要先放入线程的消息队列,然后通过消息循环分派到目标窗口(Dispatch
Message
)。 如果在不同线程内,Send
Message
发送消息到目标窗口所属线程的消息队列,然后发送消息的线程在 USER32.DLL 模块内监视和等待消息处理,直到目标窗口处理完返回。Send
Message
在返回前还做了很多工作,比如,响应别的线程向它 Send
Message
。
Post
到别的线程时,最好用
Post
Thread
Message
代替
Post
Message
,
Post
Message
的 hWnd 参数可以是 NULL,等效于
Post
Thread
Message
+ GetCurrent
Thread
Id。
Post
WM_QUIT 时,应使用
Post
Quit
Message
代替。 4、系统只整编(marshal)系统消息(0 到 WM_USER 之间的消息),发送用户消息(WM_USER 以上)到别的进程时,需要自己做整编。 用
Post
Message
、SendNotify
Message
、Send
Message
Callback 等异步函数发送系统消息时,参数里不可以使用指针,因为发送者并不等待消息的处理就返回,接受者还没处理指针就已经被释放了。 5、在 Windows 2000/XP 里,每个消息队列最多只能存放 10,000 个
Post
的消息,超过的还没被处理的将不会被处理,直接丢掉。这个值可以改得更大:[HKEY_LOCAL_MACHINE/SOFTWARE/ Microsoft/Windows NT/CurrentVersion/Windows] USER
Post
Message
Limit,最小可以是 4000。
Post
Message
只负责将消息放到消息队列中,不确定何时及是否处理 Send
Message
要等到受到消息处理的返回码(DWord类型)后才继续
Post
Message
执行后马上返回 Send
Message
必须等到消息被处理后才会返回。
在不同程序间
传递
自定义消息
演示了在vb程序之间
传递
和接收自定义消息,以及在vc和vb程序之间
传递
和接收自定义消息。
通过消息在两个独立程序之间
传递
参数的Delphi示例源代码
通过消息在两个独立程序之间
传递
参数的Delphi示例源代码,代码加有注释.
API函数大全 .txt
API函数大全 .txt API函数大全 .txt API函数大全 .txt
Delphi API函数大全
对于学习delphi的人很有用,希望能对大家有所帮助
Windows SDK/API
1,183
社区成员
22,328
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章