CAnonymousPipe - 匿名管道实现






3.40/5 (7投票s)
2000 年 3 月 4 日

58932

1188
用于封装匿名管道的免费 MFC 类
引言
欢迎使用 CAnonymousPipe v1.0,这是一个免费的 MFC 类,用于封装 Win32 中提供的匿名管道 IPC 方法。
特点 |
用法 |
历史 |
API 参考 |
计划增强功能 |
联系作者 |
特点
- 简洁的 C++ 接口。
- 类完全符合 Unicode 标准,并在工作区文件中包含 Unicode 构建选项。
用法
- 要在代码中使用该类,只需将 apipe.cpp 包含到您的项目中,并在需要调用该类的任何模块中
#include apipe.h
。 - 您的代码需要静态或动态地包含 MFC。
历史
v1.0 (1998 年 8 月 3 日)- 首次公开发布。
API 参考
API 由CAnonymousPipe
类及其公共成员函数组成。
CAnonymousPipe
~CAnonymousPipe
Create
Close
Write
读取
窥视
IsOpen
AssertValid
Dump
- CAnonymousPipe::CAnonymousPipe
- CAnonymousPipe();
备注
标准的默认构造函数。将管道句柄初始化为默认值。另请参阅
~CAnonymousPipe - CAnonymousPipe::~CAnonymousPipe
- ~CAnonymousPipe();
备注
标准的默认析构函数。将关闭所有仍打开的管道句柄。另请参阅
CAnonymousPipe - CAnonymousPipe::Create
- BOOL Create(LPSECURITY_ATTRIBUTES lpPipeAttributes = NULL, DWORD dwSize = 0);
返回值
如果成功创建匿名管道,则返回非零值,否则返回 FALSE。使用GetLastError()
获取扩展的错误信息。参数
- lpSecurityAttributes -- 指向
SECURITY_ATTRIBUTES
结构指针,该结构指定新匿名管道的安全描述符,并确定子进程是否可以继承返回的句柄。如果 lpSecurityAttributes 为 NULL,则命名管道具有默认安全描述符,且句柄不可继承。 - nSize -- 指定管道的缓冲区大小。大小仅为建议值;系统使用该值计算适当的缓冲机制。如果此参数为零,则系统使用默认缓冲区大小。
备注
创建一个匿名的服务器端管道。与命名管道不同,此函数可在非 NT 平台(包括 Windows 95 和 Windows 98)上运行。 - lpSecurityAttributes -- 指向
- CAnonymousPipe::Close
- BOOL Close();
返回值
如果管道已关闭,则返回非零值,否则返回 FALSE。使用GetLastError()
获取扩展的错误信息。备注
关闭管道。 - CAnonymousPipe::Write
- BOOL Write(LPCVOID lpBuffer, DWORD dwNumberOfBytesToWrite, DWORD& dwNumberOfBytesWritten);
返回值
如果写入成功,则返回非零值,否则返回 FALSE。使用GetLastError()
获取扩展的错误信息。参数
- lpBuffer -- 指向包含要写入管道的数据的缓冲区的指针。
- dwNumberOfBytesToWrite -- 指定要写入管道的字节数。
- dwNumberOfBytesWritten -- 指向此函数调用写入的字节数的指针。
Write()
在执行任何操作或错误检查之前将此值设置为零。
备注
以同步方式执行对匿名管道的写入操作。 - CAnonymousPipe::Read
- BOOL Read(LPVOID lpBuffer, DWORD dwNumberOfBytesToRead, DWORD& dwNumberOfBytesRead);
返回值
如果读取成功,则返回非零值,否则返回 FALSE。使用GetLastError()
获取扩展的错误信息。参数
- lpBuffer -- 指向接收要读取数据的缓冲区的指针。
- dwNumberOfBytesToRead -- 指定要从管道读取的字节数。
- dwNumberOfBytesRead -- 指向此函数调用读取的字节数的指针。
Read
在执行任何操作或错误检查之前将此值设置为零。
备注
以同步方式执行从匿名管道的读取操作。 - CAnonymousPipe::Peek
- BOOL Peek(LPVOID lpBuffer, DWORD dwBufferSize, DWORD& dwBytesRead, DWORD& dwTotalBytesAvail, DWORD& dwBytesLeftThisMessage);
返回值
如果函数成功,则返回非零值,否则返回 FALSE。使用GetLastError()
获取扩展的错误信息。参数
- lpBuffer -- 指向一个接收从管道读取的数据的缓冲区的指针。如果没有任何数据要读取,则此参数可以为 NULL。
- dwBufferSize -- 指定 lpBuffer 参数所指向的缓冲区的字节大小。如果 lpBuffer 为 NULL,则忽略此参数。
- dwBytesRead -- 32 位变量,用于接收从管道读取的字节数。
- dwTotalBytesAvail -- 32 位变量,用于接收可从管道读取的总字节数。
- dwBytesLeftThisMessage -- 32 位变量,用于接收此消息中剩余的字节数。对于字节类型的命名管道,此参数将为零。
备注
将数据从管道复制到缓冲区,而不将其从管道中移除。它还会返回有关管道中数据的信息。 - CAnonymousPipe::IsOpen
- BOOL IsOpen() const;
返回值
如果管道已打开,则返回非零值,否则返回 FALSE。 - CAnonymousPipe::AssertValid
- virtual void AssertValid();
备注
标准的 MFC 重载函数,用于对此实例执行有效性检查。 - CAnonymousPipe::Dump
- virtual void Dump(CDumpContext& dc) const;
参数
- dc -- 用于转储的诊断转储上下文,通常为
afxDump
。
备注
标准的 MFC 重载函数,用于将数据转储到 dc 提供的转储上下文中。 - dc -- 用于转储的诊断转储上下文,通常为
计划增强功能
- 将代码打包成 OCX,以便非 MFC 应用程序可以使用该代码。
- 提供一个带有该代码的示例应用程序 :>)
- 如果您有任何其他改进建议,请告诉我,以便我将其纳入下一个版本。
联系作者
PJ Naughter电子邮件:pjn@indigo.ie
网站:http://www.naughter.com
1998 年 8 月 2 日