資源簡介
可以過檢測,非常好用
代碼片段和文件信息
#include?“StdAfx.h“
#include?“Pipe.h“
//superclass?to?make?pipe?handling?easier?to?work?with
Pipe::Pipe(void)
{
pipehandle=0;
InitializeCriticalSection(&cs);
}
Pipe::~Pipe(void)
{
//check?if?someone?forgot?to?clean?it?up
if?((pipehandle!=0)?&&?(pipehandle!=INVALID_HANDLE_VALUE))
{
CloseHandle(pipehandle);
pipehandle=0;
}
}
void?Pipe::Lock(void)
{
EnterCriticalSection(&cs);
}
void?Pipe::Unlock(void)
{
LeaveCriticalSection(&cs);
}
void?Pipe::Read(PVOID?buf?int?count)
{
DWORD?br;
if?(count==0)?return;
if?(ReadFile(pipehandle?buf?count?&br?NULL)==FALSE)
throw(“Read?Error“);
}
void?Pipe::Write(PVOID?buf?int?count)
{
DWORD?bw;
if?(count==0)?return;
if?(WriteFile(pipehandle?buf?count?&bw?NULL)==FALSE)
throw(“Write?Error“);
}
BYTE?Pipe::ReadByte()
{
BYTE?b;
Read(&b?1);
return?b;
}
WORD?Pipe::ReadWord()
{
WORD?w;
Read(&w?2);
return?w;
}
DWORD?Pipe::ReadDword()
{
DWORD?dw;
Read(&dw?4);
return?dw;
}
UINT64?Pipe::ReadQword()
{
UINT64?q;
Read(&q?8);
return?q;
}
void?Pipe::WriteByte(BYTE?b)
{
Write(&b?1);
}
void?Pipe::WriteWord(WORD?w)
{
Write(&w?2);
}
void?Pipe::WriteDword(DWORD?dw)
{
Write(&dw?4);
}
void?Pipe::WriteQword(UINT64?q)
{
Write(&q?8);
}
評論
共有 條評論