命名管道”或“命名管线”(Named Pipes )是一种简单的进程间通信( I P C)机制, Microsoft Windows NT,Windows 2000、Windows 95以及Windows 98均提供了对它的支持 (但不包括Windows CE)。命名管道可在同一台计算机的不同进程之间,或在跨越一个网络的 不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。用命名管道来设计应用 程序实际非常简单,并不需要事先深入掌握基层网络传送协议(如T C P / I P或I P X
Windows 的IPC(进程间通信)机制主要是异步管道和命名管道。(至于其他的IPC方式,例如内存映射、邮槽等这里就不介绍了) 管道(pipe)是用于进程间通信的共享内存区域。创建管道的进程称为管道服务器,而连接到这个管道的进程称为管道客户端。一个进程向管道写入信息,而另外一个进程从管道读取信息。 异步管道是基于字符和半双工的(即单向),一般用于程序输入输出的重定向;命名管道则强大地多,它们是面向消息和全双工的,同时还允许网络通信,用于创建客户端/服务器系统。
近公司需要实现一个基于copydata进程间通信的功能。原来一直没有接触过Windows的进程通信,这次正好可以学习一下。
程序是基于Winform的,下面直接上代码。
公共类:
public class ImportFromDLL
{
public const int WM_COPYDATA = 0x004A;
//启用非托管代码
[StructLayout(LayoutKind.Sequential)]
public struct COPYDATASTRUCT
{