要做一个IC一卡通的项目。
IC一卡通的系统是之前别的公司做的。
现在要2次开发。不知道如何调用这个DLL?
还有I4是什么类型?//ICC 1.0 Type Library
//Version: 1.0
ICCLib;
GUID = {59E19961-ED1A-4912-9ACC-39B88BAA3E84};
//ApICC Class
CoClass ApICC;
GUID = {14D341D4-581F-445E-A5AB-D600A04FA2A2};//IApICC Interface
Dispatch IApICC;
GUID = {DB2ECCCB-D321-4061-B10D-498AAFFCC519};
  function QueryInterface(riid: ^GUID; out ppvObj: ^^VOID); stdcall;
  function AddRef: UI4; stdcall;
  function Release: UI4; stdcall;
  function GetTypeInfoCount(out pctinfo: ^UINT); stdcall;
  function GetTypeInfo(itinfo: UINT; lcid: UI4; out pptinfo: ^^VOID); stdcall;
  function GetIDsOfNames(riid: ^GUID; rgszNames: ^^I1; cNames: UINT; lcid: UI4; out rgdispid: ^I4); stdcall;
  function Invoke(dispidMember: I4; riid: ^GUID; lcid: UI4; wFlags: UI2; pdispparams: ^DISPPARAMS; out pvarResult: ^Variant; out pexcepinfo: ^EXCEPINFO; out puArgErr: ^UINT); stdcall;
  //method Init
  function Init(nComPort: INT; nBTS: INT; nAddr: INT; szPKeyA: BSTR; szPKeyB: BSTR; szCardKey: BSTR; nTraceType: INT; szLogFileName: BSTR): I4; stdcall;
  //method APP_GetRetCode
  function APP_GetRetCode: I4; stdcall;
  //method APP_GetRetData
  function APP_GetRetData(out pBuff: ^I4): I4; stdcall;
  //method APP_GetRetFrame
  function APP_GetRetFrame: BSTR; stdcall;
  //method APP_SendCmd
  function APP_SendCmd(pData: I4; nDataLen: INT): I4; stdcall;
  //method WriteCard
  function WriteCard(nSection: INT; nBlock: INT; szWriteData: BSTR; nTimeOut: INT; nHaltFlag: INT; nKeyType: INT): I4; stdcall;
  //method Beep
  function Beep: I4; stdcall;
  //method ReadCard
  function ReadCard(nSection: INT; nBlock: INT; out pReadBuff: ^BSTR; nTimeOut: INT; nHaltFlag: INT; nKeyType: INT): I4; stdcall;
  //method SetAccessControl
  function SetAccessControl(nSection: INT; szNewKeyA: BSTR; szNewKeyB: BSTR; nTimeOut: INT; nHaltFlag: INT; nKeyType: INT; dwAccess: UI4): I4; stdcall;
  //method EW_Init
  function EW_Init(nComPort: INT): I4; stdcall;
  //method EW_WriteCard
  function EW_WriteCard(pWriteData: UI4; nDataLen: UI4; nTimeOut: INT; nHaltFlag: INT): I4; stdcall;
  //method EW_ReadCard
  function EW_ReadCard(out pReadData: ^UI4; nTimeOut: INT; nHaltFlag: INT): I4; stdcall;
  //method EW_PBCard
  function EW_PBCard(nTimeOut: INT): I4; stdcall;
  //method EW_UnPBCard
  function EW_UnPBCard(nTimeOut: INT): I4; stdcall;
  //method EW_RCard
  function EW_RCard(nTimeOut: INT; nHaltFlag: INT): BSTR; stdcall;
  //method EW_GetSN
  function EW_GetSN(nTimeOut: INT): BSTR; stdcall;
  //method DB_InitDB
  function DB_InitDB(nRecSize: INT; nRecNbr: INT): I4; stdcall;
  //method DB_Append
  function DB_Append(szWriteData: BSTR; nTimeOut: INT; nHaltFlag: INT): I4; stdcall;
  //method DB_UpdateOneRecord
  function DB_UpdateOneRecord(nRecNbr: INT; szWriteData: BSTR; nTimeOut: INT; nHaltFlag: INT): I4; stdcall;
  //method DB_GetOneRecord
  function DB_GetOneRecord(nRecNbr: INT; nTimeOut: INT; nHaltFlag: INT): BSTR; stdcall;
  //method DB_Find
  function DB_Find(nOffset: INT; szFind: BSTR; nLen: INT; nTimeOut: INT; nHaltFlag: INT): I4; stdcall;
  //method DB_Clear
  function DB_Clear(nTimeOut: INT; nHaltFlag: INT): I4; stdcall;
  //method DB_GetMaxRecordCount
  function DB_GetMaxRecordCount: I4; stdcall;
  //method EW_SetFixedData
  function EW_SetFixedData(szFixData: BSTR; nDataLen: UI4; nTimeOut: INT; nHaltFlag: INT): I4; stdcall;
  //method EW_GetFixedData
  function EW_GetFixedData(nTimeOut: INT; nHaltFlag: INT): BSTR; stdcall;
  //method EW_LoadKey
  function EW_LoadKey(szKeyA: BSTR; szKeyB: BSTR; dwAccess: UI4; nTimeOut: INT; nKeyType: INT): I4; stdcall;
  //method ReadCardEx
  function ReadCardEx(nSection: INT; nBlock: INT; nTimeOut: INT; nHaltFlag: INT; nKeyType: INT): BSTR; stdcall;
  //method GetRecordcount
  function DB_GetRecordcount: I4; stdcall;
  //method PublicCard
  function PublicCard(RawKeyA: ^UI1; RawKeyB: ^UI1; NewKeyA: ^UI1; NewKeyB: ^UI1; Control: ^UI1; nTimeOut: INT): I4; stdcall;
  //method UnPublicCard
  function UnPublicCard(RawKeyA: ^UI1; RawKeyB: ^UI1; NewKeyA: ^UI1; NewKeyB: ^UI1; nTimeOut: INT): I4; stdcall;
  //method PublicCardEx
  function PublicCardEx(nFromSec: INT; nToSec: INT; RawKeyA: ^UI1; RawKeyB: ^UI1; NewKeyA: ^UI1; NewKeyB: ^UI1; Control: ^UI1; nTimeOut: INT): I4; stdcall;
  //method UnPublicCardEx
  function UnPublicCardEx(nFromSec: INT; nToSec: INT; RawKeyA: ^UI1; RawKeyB: ^UI1; NewKeyA: ^UI1; NewKeyB: ^UI1; nTimeOut: INT): I4; stdcall;
  //method PublicCardEx2
  function PublicCardEx2(nFromSec: INT; nToSec: INT; RawKeyA: BSTR; RawKeyB: BSTR; NewKeyA: BSTR; NewKeyB: BSTR; nTimeOut: INT): I4; stdcall;
  //method UnPublicKeyEx2
  function UnPublicKeyEx2(nFromSec: INT; nToSec: INT; RawKeyA: BSTR; RawKeyB: BSTR; NewKeyA: BSTR; NewKeyB: BSTR; nTimeOut: INT): I4; stdcall;