原型如下:
/*--------------------------------交易上传结构体定义---------------------------------*/
struct TransUp 
{
BYTE OperateType[Operate_T_L];           //操作类型
BYTE TransType[Trans_T_L];               //交易类型
BYTE CardType[Card_T_L];           //卡类型
BYTE CashRegNo[CashReg_N_L];           //收银机编号
BYTE CasherNo[Casher_N_L];           //柜员号
BYTE Amount[Amount_L];               //金额
BYTE CashTraceNo[CashTrace_N_L];       //收银流水号
BYTE OriginCashTraceNo[CashTrace_N_L];    //原收银流水号
BYTE Reserved[48];               //预留字段
};/*------------------------------交易查询,返回结构体定义------------------------------*/
struct TransDown 
{
BYTE OperateType[Operate_T_L];            //操作类型
BYTE TransType[Trans_T_L];                 //交易类型
BYTE CardType[Card_T_L];            //卡类型
BYTE ResponseCode[ResponseCode_L];        //返回码
BYTE ResponseMsg[ResponseMsg_L];        //返回信息
BYTE CashRegNo[CashReg_N_L];            //收银机编号
BYTE CasherNo[Casher_N_L];            //柜员号
BYTE Amount[Amount_L];                //金额
BYTE SettleNum[Settel_N_L];                //结算批次号
BYTE MerchantID[MerchantID_N_L];           //商户号
BYTE MerchantName[MerchantName_L];        //商户名称
BYTE TerminalID[TerminalID_N_L];        //终端号
BYTE CardNo[Card_N_L];            //卡号
BYTE Exp_Date[ExpDate_L];            //有效期
BYTE BankNo[Bank_N_L];                //发卡行标识
BYTE TransDate[TransDate_L];            //交易日期
BYTE TransTime[TransTime_L];            //交易时间
BYTE Auth_Code[AuthCode_N_L];            //授权号
BYTE SysRefNo[Sysref_N_L];            //系统参照号
BYTE CashTraceNo[CashTrace_N_L];        //收银流水号
BYTE OriginCashTraceNo[CashTrace_N_L];     //原收银流水号
BYTE SysTraceNo[SysTrace_N_L];            //系统流水号
BYTE OriginSysTraceNo[SysTrace_N_L];       //原系统流水号
BYTE Reserved[48];                //预留字段
};void Trans (int com,char * TransUp, char * TransDown);请问各位大侠在VB中如何调用该函数及参数传递急急急,在线等!先谢谢啦!!!

解决方案 »

  1.   


    ' 声明:Private Const Operate_T_L As Long = 100
    '......Private Type _TransUp
        OperateType(Operate_T_L) As Byte
        '......
    End TypePrivate Type _TransDown
        OperateType(Operate_T_L) As Byte
        '......
    End TypePrivate Declare Sub Trans Lib "DLL 名称" (ByVal com As Long, ByVal lTransUp As Long, ByVal lTransDown As Long)'调用:
    Dim tu As _TransUp
    Dim td As _TransDown' 在这里做一些变量的赋值操作Dim nCom As Long
    nCom = 10000
    Call Trans(nCom, VarPtr(tu), VarPtr(td))
      

  2.   

    我也这样试过,但_TransUp中有些值未传递过去。
      

  3.   

    Private Declare Sub Trans Lib "DLL 名称" (ByVal com As Long, ByRef TransUp As Byte, ByRef TransDown As Byte)Dim tu(8) As Byte
    Dim td(23) As Byte
    Dim nCom As LongnCom = 1
    Call Trans(nCom, tu(0), td(0))
      

  4.   

    谢谢各位,此问题已解决,原来是DLL还需调用INI文件。