vb 管道共享

Dim hReturn As Long
    Dim dwOpenMode As Long, dwPipeMode As Long

    dwOpenMode = FILE_FLAG_OVERLAPPED Or PIPE_ACCESS_DUPLEX
    dwPipeMode = PIPE_NOWAIT Or PIPE_TYPE_MESSAGE Or PIPE_READMODE_MESSAGE
    hNamePipe = CreateNamedPipe(PIPE_NAME, dwOpenMode, dwPipeMode, PIPE_UNLIMITED_INSTANCES, BUFFER_SIZE, BUFFER_SIZE, PIPE_TIMEOUT, 0&)

这样应该就对了,另外奉送该函数的说明,跟老大抢分不容易啊。

HANDLE CreateNamedPipe(
LPCTSTR lpName,                             // pipe name
DWORD dwOpenMode,                           // pipe open mode
DWORD dwPipeMode,                           // pipe-specific modes
DWORD nMaxInstances,                        // maximum number of instances
DWORD nOutBufferSize,                       // output buffer size
DWORD nInBufferSize,                        // input buffer size
DWORD nDefaultTimeOut,                      // time-out interval
LPSECURITY_ATTRIBUTES lpSecurityAttributes // SD
);
创建命名管道和打开已经存在的命名管道,其中lpName为管道名称,dwOpenMode为创建方式,可以是下面值的组合:
PIPE_ACCESS_INBOUND:管道只能用作接收数据。
PIPE_ACCESS_OUTBOUND:管道只能用作发送数据。
PIPE_ACCESS_DUPLEX:管道既可以发送也可以接收数据。(上面这三个值只能够取其中一个)
FILE_FLAG_WRITE_THROUGH:管道用于同步发送和接收数据,只有在数据被发送到目标地址时发送函数才会返回,如果不设置这个参数那么在系统内部对于命名管道的处理上可能会因为减少网络附和而在数据积累到一定量时才发送,并且对于发送函数的调用会马上返回。
FILE_FLAG_OVERLAPPED:管道可以用于异步输入和输出,异步读写的有关方法和文件异步读写是相同的。
dwPipeMode指定管道类型,可以是下面值的组合:
PIPE_TYPE_BYTE:数据在通过管道发送时作为字节流发送,不能与PIPE_READMODE_MESSAGE共用。
PIPE_TYPE_MESSAGE:数据在通过管道发送时作为消息发送,不能与PIPE_READMODE_BYTE共用。
PIPE_READMODE_BYTE:在接收数据时接收字节流。
PIPE_READMODE_MESSAGE:在接收数据时接收消息。
PIPE_WAIT:使用等待模式,在读,写和建立连接时都需要管道的另一方完成相应动作后才会返回。
PIPE_NOWAIT:使用非等待模式,在读,写和建立连接时不需要管道的另一方完成相应动作后就会立即返回。
nMaxInstances为管道的的最大数量,在第一次建立服务器方管道时这个参数表明该管道可以同时存在的数量。PIPE_UNLIMITED_INSTANCES表明不对数量进行限制。nOutBufferSize和nInBufferSize表示缓冲区的大小。nDefaultTimeOut表示在等待连接时最长的等待时间(以毫秒为单位),如果在创建时设置为NMPWAIT_USE_DEFAULT_WAIT表明无限制的等待,而以后服务器方的其他管道实例也需要设置相同的值。lpSecurityAttributes为安全属性,一般设置为NULL。如果创建或打开失败则返回INVALID_HANDLE_VALUE。可以通过GetLastError得到错误。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝图

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值