弟第一次調用dll,有點麻煩,煩請您幫手解決。
我的dll中有個參數是結構體
struct EMATTCARDINFO { long nCardID;
         long nPersonID;
         long nGrade;
         long nGroup;
         char strName[8];
        };
struct ATTGUARDCARD{
        long nNumber;
        long nAddr;
        EMATTCARDINFO sEmAttGuardCard[16];
        };
函數的形式為BYTE KRegisterCardAutoID(HANDLE HDEV,BYTE DEVICEID,BOOL ISBIG5,ATTGUARDCARD STRATTCARD)
請問我在Delphi中該怎麼來調用。

解决方案 »

  1.   

    關鍵是兩個結構體類型在delphi中怎麼定義
      

  2.   

    type EMATTCARDINFO == record   
          long nCardID;
             long nPersonID;
             long nGrade;
             long nGroup;
             char strName[8];
          ATTGUARDCARD== record   
            long nNumber;
            long nAddr;
            EMATTCARDINFO sEmAttGuardCard[16];
    end ;
      

  3.   

    type
      EMATTCARDINFO = record
        nCardID   : longint;
        nPersonID : longint;
        nGrade    : longint;
        nGroup    : longint;
        strName   : array[0..7] of Char;
      end;
      ATTGUARDCARD = record
        nNumber         : LongInt;
        nAddr           : LongInt;
        sEmAttGuardCard : array[0..15] of EMATTCARDINFO;
      end;function  KRegisterCardAutoID(HDEV: THandle;DEVICEID: Byte;ISBIG5: LongBool;STRATTCARD: ATTGUARDCARD): Byte;还有这种东西external xxx name 'KRegisterCardAutoID'; stdcall;自己写吧..