DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: tino0914
今日帖子: 31
在线用户: 11
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 ken0137 (顺眼即佛) ★☆☆☆☆ -
普通会员
2017/8/17 17:44:28
标题:
请问type要怎么写 浏览:935
加入我的收藏
楼主: 在盒子上下载了一个读取CPU ID的代码,但是使用D7编译时出错,请教此代码type这里要怎么修改?
显示[Error] HardwareInfo.pas(16): 'END' expected but 'TYPE' found
type
  THardwareInfo = class
此处错误
==========
unit HardwareInfo;

interface
uses Windows,SysUtils,Dialogs,Nb30;

type
  THardwareInfo = class
  type
     TNBLanaResources = (lrAlloc, lrFree);

  type
     PMACAddress = ^TMACAddress;
     TMACAddress = array[0..5] of Byte;

//以下读硬盘号用
  TSrbIoControl = packed record
    HeaderLength : ULONG;
    Signature    : Array[0..7] of Char;
    Timeout      : ULONG;
    ControlCode  : ULONG;
    ReturnCode   : ULONG;
    Length       : ULONG;
  end;
  SRB_IO_CONTROL = TSrbIoControl;
  PSrbIoControl = ^TSrbIoControl; 

  TIDERegs = packed record 
    bFeaturesReg     : Byte; // Used for specifying SMART "commands". 
    bSectorCountReg  : Byte; // IDE sector count register
    bSectorNumberReg : Byte; // IDE sector number register 
    bCylLowReg       : Byte; // IDE low order cylinder value
    bCylHighReg      : Byte; // IDE high order cylinder value 
    bDriveHeadReg    : Byte; // IDE drive/head register 
    bCommandReg      : Byte; // Actual IDE command. 
    bReserved        : Byte; // reserved.  Must be zero. 
  end;
  IDEREGS   = TIDERegs;
  PIDERegs  = ^TIDERegs; 

  TSendCmdInParams = packed record 
    cBufferSize  : DWORD; 
    irDriveRegs  : TIDERegs; 
    bDriveNumber : Byte; 
    bReserved    : Array[0..2] of Byte; 
    dwReserved   : Array[0..3] of DWORD;
    bBuffer      : Array[0..0] of Byte;
  end;
  SENDCMDINPARAMS   = TSendCmdInParams;
  PSendCmdInParams  = ^TSendCmdInParams; 

  TIdSector = packed record 
    wGenConfig          : Word; 
    wNumCyls          : Word;
    wReserved          : Word; 
    wNumHeads          : Word; 
    wBytesPerTrack          : Word; 
    wBytesPerSector          : Word; 
    wSectorsPerTrack          : Word; 
    wVendorUnique          : Array[0..2] of Word;
    sSerialNumber          : Array[0..19] of Char; 
    wBufferType          : Word; 
    wBufferSize          : Word; 
    wECCSize          : Word;
    sFirmwareRev          : Array[0..7] of Char; 
    sModelNumber          : Array[0..39] of Char;
    wMoreVendorUnique          : Word; 
    wDoubleWordIO          : Word; 
    wCapabilities          : Word; 
    wReserved1          : Word; 
    wPIOTiming          : Word; 
    wDMATiming          : Word;
    wBS          : Word; 
    wNumCurrentCyls          : Word; 
    wNumCurrentHeads          : Word; 
    wNumCurrentSectorsPerTrack : Word; 
    ulCurrentSectorCapacity    : ULONG; 
    wMultSectorStuff          : Word;
    ulTotalAddressableSectors  : ULONG; 
    wSingleWordDMA          : Word;
    wMultiWordDMA          : Word; 
    bReserved          : Array[0..127] of Byte; 
  end;
  PIdSector = ^TIdSector; 

const
  IDE_ID_FUNCTION = $EC; 
  IDENTIFY_BUFFER_SIZE       = 512;
  DFP_RECEIVE_DRIVE_DATA        = $0007c088;
  IOCTL_SCSI_MINIPORT          = $0004d008;
  IOCTL_SCSI_MINIPORT_IDENTIFY  = $001b0501;
  DataSize = sizeof(TSendCmdInParams)-1+IDENTIFY_BUFFER_SIZE;
  BufferSize = SizeOf(SRB_IO_CONTROL)+DataSize;
  W9xBufferSize = IDENTIFY_BUFFER_SIZE+16;
//以上读硬盘号用

  public
    function GetMACAddress(Num: Byte=0): String;overload;
    function GetIDEDiskSerialNumber : String;
    function GetIDEDiskDriveInfo(Drive:Char;InfoID:Byte=1) : String;
    function GetCPUInfo(InfoID:Byte=1) : String;

  private
    function GetMACAddress(LanaNum: Byte; MACAddress: PMACAddress): Byte;overload; //LanaNum 网卡标识
    procedure ChangeByteOrder(var Data; Size: Integer);
    function GetLanaEnum(LanaEnum: PLanaEnum): Byte;
    function ResetLana(LanaNum, ReqSessions, ReqNames: Byte; LanaRes: TNBLanaResources): Byte;
  end;

implementation
代码地址:http://www.2ccc.com/article.asp?articleid=3669
----------------------------------------------
只会简单使用,并未精通深入
作者:
男 ken0137 (顺眼即佛) ★☆☆☆☆ -
普通会员
2017/8/18 8:42:56
1楼: type
  THardwareInfo = class

去除即可
----------------------------------------------
只会简单使用,并未精通深入
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2017/8/18 8:55:53
2楼: 用cnvcl里的函数吧,这个函数太古老,不支持x64的。
----------------------------------------------
--
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行78.125毫秒 RSS