delphi – 在进程之间移动数据
我问这个的原因是寡妇不支持在进程之间进行通信的好方法.所以我想为
Windows进程之间的通信点创建一个DLL.线程由进程拥有,不能提供给另一个进程.
每个线程都有自己的堆栈. 如果加载了DLL(loadlibray)并且调用了一个DLL函数,它会向windows请求内存.我写的是认为线程仍然由同一进程拥有并将内存分配到同一进程中. 所以我想我可以转向程序集将一个小内存块重新分配给另一个进程.创建一个关键部分,将数据复制到另一个(已创建的)内存块,并使用out up设置窗口返回原始块到其原始进程.有没有人以前这样做过.或者是更好的方式. 最好的祝福, 我看到其他方法相当快,但我想要一个非常快速的方法,有点头脑.管道和互联网显然可以工作,但不是最好的选择,但很容易实现(感谢提供这样的建议家伙).我想有时会以相当规律的间隔发送相当多的500字节块.我喜欢WM_COPYDATA因为它看起来很快,我在互联网上一直在寻找的最大问题是: – GetCurrentProcess和DuplicateHandle来获得真正的处理.寻找其他过程.并使用消息设置内存,然后使用WM_COPYDATA.我只需要两条消息a)指针和大小b)数据已被复制. 我不喜欢转向一个表格来获取句柄,因为一个应用程序并不总是具有当前形式. 真正的底线是访问窗口以创建一个很好的选择.因为我对想法很开放.甚至是进程之间的组装指令或Windows调用.但是我不知道通过做违法的事情让法庭崩溃. 解决方法
我有一个基于命名管道的非常快速的IPC(进程间通信)解决方案.它非常快速且易于使用(它隐藏了您的实际实现.您只需使用数据包).还经过测试和验证.您可以在此处找到代码和演示.
http://www.cromis.net/blog/downloads/cromis-ipc/ 它也适用于同一LAN中的计算机. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |