自定义匿名管道类2

//---------------------------------------------------------------------------
/*
Module : ANONYMOUSPIPE.H
Purpose: Defines the interface for an MFC wrapper classe for Win32 Anonymous Pipes
Created: LICQ / 10-26-2007
History: None
Copyright (c) 2007 by LICQ.
All rights reserved.
*/
//---------------------------------------------------------------------------

#ifndef AnonyPipeUnitH
#define AnonyPipeUnitH

#include <assert.h>
#include <windows.h>
//---------------------------------------------------------------------------
class CAnonymousPipe
{
public:
      //Constructors / Destructors
      __fastcall CAnonymousPipe()
      {
          m_hWrite = INVALID_HANDLE_VALUE;
          m_hRead = INVALID_HANDLE_VALUE;
      }
      virtual __fastcall ~CAnonymousPipe()
      {
          Close();
      }

      //Creation & Opening
      BOOL __fastcall Create(LPSECURITY_ATTRIBUTES lpPipeAttributes = NULL, DWORD dwSize = 0)
      {
          assert(!IsOpen());

          BOOL bSuccess = ::CreatePipe(&m_hRead, &m_hWrite, lpPipeAttributes, dwSize);
          return bSuccess;
      }

      //General functions
      BOOL __fastcall Write(LPCVOID lpBuffer, DWORD dwNumberOfBytesToWrite, DWORD &dwNumberOfBytesWritten)
      {
          assert(!IsOpen());

          if (!WriteFile(m_hWrite, lpBuffer, dwNumberOfBytesToWrite, &dwNumberOfBytesWritten, NULL))
              return FALSE;
          return TRUE;
      }

      BOOL __fastcall Read(LPVOID lpBuffer, DWORD dwNumberOfBytesToRead, DWORD &dwNumberOfBytesRead)
      {
          assert(!IsOpen());

          if (!ReadFile(m_hRead, lpBuffer, dwNumberOfBytesToRead, &dwNumberOfBytesRead, NULL))
              return FALSE;
          return TRUE;
      }

      BOOL __fastcall Close()
      {
          BOOL bSuccess = TRUE;
          if (IsOpen())
          {
              BOOL bSuccess1 = CloseHandle(m_hWrite);
              BOOL bSuccess2 = CloseHandle(m_hRead);
              bSuccess = bSuccess1 && bSuccess2;
          }
          return bSuccess;
      }

      //State accessors
      BOOL __fastcall IsOpen() const
      {
          return (m_hWrite != INVALID_HANDLE_VALUE);
      }

public:
      HANDLE m_hWrite;
      HANDLE m_hRead;
};
//---------------------------------------------------------------------------
#endif
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Delphi是一种集成开发环境(IDE),被用于创建Windows平台上的应用程序。在Delphi中,我们可以使用自定义类来创建自己的数据类型和对象。 自定义类是用于封装数据和功能的模块化单元。通过自定义类,我们可以将相关的数据和方法组织在一起,以便更好地管理和操作。一个自定义类可以包含属性(对应数据)、方法(对应功能)和事件(对应触发器)。 在Delphi中,我们可以使用类向导来创建自定义类。类向导提供了一个可视化界面,可以设置类的属性和方法。首先,我们可以定义类的名称、父类(如果有)、接口(可选)等。然后,我们可以添加属性或方法,并为它们设置数据类型、访问修饰符和实现代码。最后,我们可以根据需要为类添加事件。 通过自定义类,我们可以创建多个对象,每个对象都具有相同的属性和方法,但它们的数据可以独立进行操作。我们可以在代码中通过实例化类来创建对象,并访问对象的属性和方法。 自定义类在Delphi中具有许多优点。首先,它提高了代码的可维护性和可读性,因为相关的数据和功能被组织在一起。其次,它提供了代码的重用性,因为我们可以在不同的应用程序中使用相同的类。另外,自定义类还支持面向对象编程的特性,如继承、封装和多态,使得我们可以更加灵活地设计和实现程序。 总之,Delphi的自定义类是一种强大的工具,可以帮助我们创建模块化、可维护和灵活的应用程序。通过类向导,我们可以轻松地创建自定义类,并利用它们来封装数据和功能,提高代码的可读性和重用性。 ### 回答2: Delphi是一种面向对象的编程语言,可以使用它来创建自定义类。自定义类是指根据程序需求,开发者可以创建自己定义的数据类型。 在Delphi中,我们可以使用class关键字来定义一个类。一个类由一组属性和方法组成。属性是类的数据成员,用于存储和表示对象的状态。方法是用于对对象进行操作和执行特定功能的函数。 在定义类时,需要考虑类的属性和方法。可以根据需要添加需要的属性,每个属性都有其类型和访问权限。属性的类型可以是基本数据类型,如整数、浮点数、字符等,也可以是其他自定义类。 类的方法定义了类的行为和功能,可以包括对属性的读取和设置、对象的初始化和析构等操作。方法可以是公共方法,可以在类的外部访问和调用;也可以是私有方法,只能在类的内部访问和调用。 自定义类的一个好处是可以根据需要封装和组织数据和功能,提高代码的可读性和可维护性。通过自定义类,可以建立具有相关属性和方法的对象实例,简化程序的设计和开发过程。 在Delphi中,可以使用自定义类来实现各种功能,如创建游戏角色、管理学生信息、处理文件操作等。通过定义各种属性和方法,可以使类适应不同的应用场景,并实现灵活的功能。 总的来说,Delphi的自定义类功能十分强大,可以根据需求创建各种数据类型并封装相关的操作,提高程序的可扩展性和可维护性。通过自定义类,可以实现更加灵活和高效的编程。 ### 回答3: Delphi 是一种高级的编程语言,它允许开发人员创建自定义类来实现特定功能和逻辑。自定义类是面向对象编程的基本概念之一,它允许开发人员将相关的数据和方法组织在一起,以便更好地管理和重用代码。 在 Delphi 中创建自定义类的过程非常简单,只需要按照一定的语法规则来定义类的成员即可。自定义类可以包含属性、方法和事件等成员。 属性是类的特征或状态,可以通过访问器(Getter)和修改器(Setter)来读取和修改属性的值。方法是类的行为,用于执行特定的操作或完成特定的任务。事件是类的响应机制,可以在特定的情况下触发特定的操作。 使用自定义类可以让开发人员更好地组织和管理代码,并且提高代码的重用性。当我们需要实现某项特定功能时,只需要创建一个适应需求的自定义类,并调用类的成员来实现相关的功能。 例如,我们可以创建一个自定义类来表示一个学生,该类可以包含学生的姓名、年龄和成绩等属性,还可以包含计算学生平均成绩的方法。当我们需要计算一个学生的平均成绩时,只需要创建一个学生对象,并调用平均成绩的计算方法即可。 总之,Delphi 提供了强大的功能来创建自定义类,使开发人员能够更好地组织和管理代码,并提高代码的可读性和可维护性。通过合理地使用自定义类,我们可以更加高效地开发出符合需求的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值