社区
进程/线程/DLL
帖子详情
简单的问题:请问如何用SendMessage API函数在两个进程之间传递字符串?
del
2000-10-25 06:02:00
...全文
221
6
打赏
收藏
简单的问题:请问如何用SendMessage API函数在两个进程之间传递字符串?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CoolHg
2000-10-26
打赏
举报
回复
-
del
2000-10-26
打赏
举报
回复
成功了!非常感谢各位大哥帮助,由于我的分数已经......,所以只有意思一下了,抱歉!
prodigy
2000-10-26
打赏
举报
回复
进程间传递指针要出错的,因为他们有自己的4G进程空间,这里的指针在另一个进程中不是有效的
andygood
2000-10-25
打赏
举报
回复
如果非要使用SendMessage的话,使用WM_COPYDATA几乎是最简单而可行的方法。如果你不使用WM_COPYDATA的话,请使用共享内存映射文件,否则会执行非法操作。
另外,如果是改变窗口的标题之类的标准文本操作的话(通常使用WM_SETTEXT等),因为Windows会自动在进程之间进行内存拷贝(因为可以使用strlen来得到字符串的大小),所以可以直接使用,就像是在同一个进程内。
土豆
2000-10-25
打赏
举报
回复
你可以用WM_COPYDATA消息捎带数据啊,如下:
COPYDATASTRUCT cds;
char msg[100]="Test Message";
cds.cbData =100;
cds.lpData = (LPBYTE)msg;
SendMessage(hDestWnd, WM_COPYDATA, (WPARAM)hSourceWnd, (LPARAM)&cds);
绝对OK。
joke100
2000-10-25
打赏
举报
回复
好象还没有现成的消息吧.
不过可以用自定义消息
UINT uMyStringMsg = RegisterWindowMessage(TEXT(TransportString));
在进程内你要传送字符串的地方调用
SendMessage(HWND_BROADCAST, uMyStringMsg, 0, "需传递的字符串");
在另一个进程的消息处理函数中
switch (message)
{
.......
case WM_COMMAND:
switch (wParam)
{
default :
if (message == uMyStringMsg)
str = CString(*lParam);
}
}
先自定义一个消息,将要传送的字符串放在lParam参数中,以广播的方式或直接送给目标进程,在目标进程中对此自定义消息做处理,取出传来的字符串即可.
SendMessage
()
传递
字符串
SendMessage
函数
的原型为
LRESULT
SendMessage
(
HWNDhWnd,
UINTMsg,
WPARAMwParam,
LPARAMlParam
);
用于消息
传递
,其中有WPARAM 和 LPARAM
两个
附加参数,可以
传递
一些附加信息,由于它们是long 型的,所以只能
传递
数字,如果想要
传递
字符串
之类的则需要使用指针,即
字符串
的地址。
C#使用
SendMessage
传递
字符串
在C#中使用
SendMessage
,原本以为很
简单
的事,却处处碰壁。在定义消息时忘记了用户可定义消息的边界值,在网上一阵疯找后来发现是const int WM_USER = 0x400。接着是
SendMessage
的lParam类型不能决定(默认是IntPtr),我想发送
字符串
信息,就将它定为了string型,然后通过重写DefWndProc接收自定义消息。
问题
出现:(string) mess
用WM_COPYDATA消息来实现
两个
进程
之间
传递
数据
文着重讲述了如果用WM_COPYDATA消息来实现
两个
进程
之间
传递
数据.
进程
之间
通讯的几种方法:在Windows程序中,各个
进程
之间
常常需要交换数据,进行数据通讯。常用的方法有 1、使用内存映射文件 2、通过共享内存DLL共享内存 3、使用
SendMessage
向另一
进程
发送WM_COPYDATA消息比起前两种的复杂实现来,WM_COPYDATA消息无疑是一种经济实惠的一中方法.WM_C...
c#
进程
间的通信实现之一
简单
字符串
收发
使用Windows
API
实现
两个
进程
间(含窗体)的通信在Windows下的
两个
进程
之间
通信通常有多种实现方式,在.NET中,有如命名管道、消息队列、共享内存等实现方式,这篇文章要讲的是使用Windows的
API
来实现
简单
的
进程
间通信,这
两个
进程
既可以都是基于C#开发,也可以都是基于C++开发,也可以是一个C#开发而另一个为C++开发,在C++开发方面,不需要额外调用Windows的
API
,...
VC/MFC 不同
进程
间的消息通信与数据(
字符串
)发送
VC/MFC 不同
进程
间的消息通信与数据(
字符串
)发送 本文转自于 http://book.csdn.net/bookfiles/212/10021210209.shtml 出处:Windows应用程序捆绑核心编程 3.4 使用WM_COPYDATA消息通信 对于少量数据可以用WM_COPYDATA方便地实现通信。由于
SendMessage
()是阻塞的,只有接收方响应了消息,Sen
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章