sendmessage wm_copydata(200分)

  • 主题发起人 主题发起人 sxflmandy
  • 开始时间 开始时间
S

sxflmandy

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠:<br>&nbsp; &nbsp;请问在进程之间到底可不可以用wm_copydata传记录类型(结构体),我查了一下网上有说可以的,有说不可以的,我咋试了就是不行呢,在另外一个程序中结构体指针接收,打开就报错,:-(
 
可以<br>wm_copydata消息的lParam是个COPYDATASTRUCT结构体<br>1.为COPYDATASTRUCT.lpData分配内存<br>2.把你要传的结构体COPY进COPYDATASTRUCT.lpData<br>3.设置COPYDATASTRUCT.dwData为SizeOf(COPYDATASTRUCT.lpData)<br>4.发消息<br>5.接收消息后再COPY出来
 
ysai 兄:<br>&nbsp; 能不能给段代码,包括发送和接收的,我也试了几次就是不行,多谢
 
一般字符,大数据,尤其是不在一个空间的用这个消息
 
我做过delphi和vc之间用copydate发送消息..我找下代码.
 
function SendCommandData(const Msg: string): Boolean;<br>var<br>&nbsp; nServiceWnd: THandle;<br>&nbsp; cData: TCopyDataStruct;<br>begin<br>&nbsp; Result := False;<br>&nbsp; nServiceWnd := FindWindow(defServiceClassName, nil);<br>&nbsp; if nServiceWnd = 0 then<br>&nbsp; &nbsp; nServiceWnd := StartServiceWin;<br>&nbsp; if nServiceWnd &lt;&gt; 0 then<br>&nbsp; begin<br>&nbsp; &nbsp; cData.cbData := Length(Msg);<br>&nbsp; &nbsp; cData.dwData := 0;<br>&nbsp; &nbsp; cData.lpData := PChar(Msg);<br>&nbsp; &nbsp; SendMessage(nServiceWnd, WM_COPYDATA, WPARAM(Application.Handle), LPARAM(@cData)); { 异步发送,省的阻塞 }<br>&nbsp; &nbsp; Result := True;<br>&nbsp; end;<br>end;
 
感谢大家的帮忙!
 

Similar threads

回复
0
查看
978
不得闲
回复
0
查看
1K
不得闲
回复
0
查看
690
不得闲
回复
0
查看
804
不得闲
后退
顶部