请问INTRCPT.DLL & midas.dll的作用?
在delphi安装盘可以找到midas.dll,但没有INTRCPT.DLL文件。

解决方案 »

  1.   

    !!没记错的话,INTRCPT.DLL是三层程序中用来加密的dlldelphi里有demo,是socketConnection用的,是含com对象的dll自已写一个就行了,找到一个以前写的例子unit intrcptu;
    interfaceuses
      Windows, ActiveX, ComObj, SConnect,HCMngr;  //****************************************************************type
      TDataEncryptor = class(TComObject, IDataIntercept)
      protected
        FInHCMngr,FOutHCMngr : TCipherManager;
        FInHashMngr,FOutHashMngr : THashManager;
      protected
        procedure DataIn(const Data: IDataBlock); stdcall;
        procedure DataOut(const Data: IDataBlock); stdcall;
      public
        procedure Initialize;override;
        destructor Destroy; override;
      end;  //****************************************************************
      //测试过程
      procedure TestInrcpt(const Data : IDataBlock;datain : Boolean);stdcall;const
      Class_DataEncryptor : TGUID = '{638A8E1D-321E-4D68-9E01-A3E164E9CF48}';  //****************************************************************implementation
    uses ComServ, SysUtils, Classes, MidConst;  //****************************************************************
      procedure TestInrcpt(const Data : IDataBlock;datain : Boolean);
      var
        TmpEncryptor : TDataEncryptor;
      begin
        TmpEncryptor := TDataEncryptor.Create;try
          if datain then
            TmpEncryptor.DataIn(Data)
          else
            TmpEncryptor.DataOut(Data);
        finally TmpEncryptor.Free; end;
      end;
      //****************************************************************
      {
      IDataBlock接口由SConnect.pas中的类TDataBlock实现
      其中流头部保留8个字节,前4个用于标志(表示这个包是干什么用的)
      后4个字节用于保存这个数据块的大小
      }
    const CK_ENCRYPT_KEY : string = '是枯地仍加';
      //****************************************************************procedure TDataEncryptor.DataIn(const Data: IDataBlock);
    var
      tmpIn : Pointer;
      tmpSize : integer;
    begin
      tmpSize := Data.Size;
      tmpIn := AllocMem(tmpSize);try
        Move(Pointer(Integer(Data.Memory) + Data.BytesReserved)^,tmpIn^,tmpSize);
        FInHCMngr.InitKey(CK_ENCRYPT_KEY,nil);
        FInHCMngr.DecodeBuffer(tmpIn^,Pointer(Integer(Data.Memory) + Data.BytesReserved)^,tmpSize);
      finally FreeMem(tmpIn,tmpSize);end;
    end;  //****************************************************************procedure TDataEncryptor.DataOut(const Data: IDataBlock);
    var
      tmpIn : Pointer;
      tmpSize : integer;
    begin
      tmpSize := Data.Size;
      tmpIn := AllocMem(tmpSize);try
        Move(Pointer(Integer(Data.Memory) + Data.BytesReserved)^,tmpIn^,tmpSize);
        FOutHCMngr.InitKey(CK_ENCRYPT_KEY,nil);
        FOutHCMngr.EncodeBuffer(tmpIn^,Pointer(Integer(Data.Memory) + Data.BytesReserved)^,tmpSize);
      finally FreeMem(tmpIn,tmpSize);end;
    end;  //****************************************************************destructor TDataEncryptor.Destroy;
    begin
      FInHCMngr.Free;
      FOutHCMngr.Free;
      FInHashMngr.Free;
      FOutHashMngr.Free;
      inherited;
    end;procedure TDataEncryptor.Initialize;
    begin
      inherited;
      FInHCMngr := TCipherManager.Create(nil);
      FOutHCMngr := TCipherManager.Create(nil);
      FInHashMngr := THashManager.Create(nil);
      FOutHashMngr := THashManager.Create(nil);  //加密算法
      FInHCMngr.Algorithm := 'DESX';
      FOutHCMngr.Algorithm := 'DESX';
      //哈希算法
      FInHashMngr.Algorithm := 'Ripe Message Digest 256';
      FOutHashMngr.Algorithm := 'Ripe Message Digest 256';  FInHCMngr.HashManager := FInHashMngr;
      FOutHCMngr.HashManager := FOutHashMngr;
    end;initialization
      TPacketInterceptFactory.Create(ComServer, TDataEncryptor, Class_DataEncryptor,
        'stc_DataEncryptor', 'stc DataEncryptorInterceptor', ciMultiInstance, tmApartment);
    end.
      

  2.   

    midas.dll就不说了,地球人都知道……你去看看书吧,别一有问题就来问.
      

  3.   

    顺便问一问,在客户端如何调用INTRCPT.DLL呢?
    我在设置socket服务后,在socketConnection控件中设置了关于INTRCPT的属性,后就不能连接到服务器了,我该如何解决呢?
      

  4.   

    to  starcbh: 谢谢大哥!!!
        原来delphi的Demos有例子!
    ***
    to  PaPaCong(小勇):
    regsvr32 INTRCPT.DLL