比如这样使用命名管道:
m_hPipe = CreateNamedPipe("\\\\.\\Pipe\\Test", PIPE_ACCESS_DUPLEX, PIPE_TYPE_BYTE | PIPE_READMODE_BYTE, 1, 0, 0, 1000, NULL);硬盘上生成相应的文件吗?在哪里?别的进程可以打开这个文件吗?我想实现的是一方以WriteFile向管道写入数据,另一方必须打开此管道文件才可以使用(不能用ReadFile读)。谢谢!

解决方案 »

  1.   

    应该只是一个内存文件,不会在硬盘上生成文件。
    两方应该一个做为Server,另一个做为Client。
    Client端可以通过ConnectNamedPipe去连接。
      

  2.   

    硬盘上生成相应的文件吗?在哪里?别的进程可以打开这个文件吗? 
        --------
        硬盘上不生成文件。记得有句话好像是这么说的,管道实际是用于进程间通信的一段共享内存。我想实现的是一方以WriteFile向管道写入数据,另一方必须打开此管道文件才可以使用(不能用ReadFile读)。 
        --------
        为什么不能用ReadFile读
      

  3.   

    to zhoudanjie:因为想用directshow来render这个文件。render需要一个路径,不能是一个文件句柄。
      

  4.   

    个人理解,管道的读写要通过WriteFile和ReadFile配合着来实现。没接触过directshow和render,也不知道管道中数据的大小和内容。
    最坏打算,或许你可以ReadFile出来后,把数据写到指定路径的文件中去,再来render。