首页
社区
课程
招聘
[求助]易语方大神们!关于易语言COM VB DLL的问题!
发表于: 2017-4-7 11:07 4222

[求助]易语方大神们!关于易语言COM VB DLL的问题!

2017-4-7 11:07
4222

易语言 如查通过对象调用DLL里有数据类型!

对象.查看 代码如下 调用SyCDChangCard 函数 里面有个sICUserInfo 数据类型 这个数据类型在易语言 怎么为对象


方法调用格式: 〈逻辑型〉 对象.逻辑方法 ("SyCDChangeCard",sICUserInfo,CardPhyNo,SecNo,sKey)
参数<1>的名称为“sICUserInfo”,类型为“对象(ICUserInfo_Struct)”。
参数<2>的名称为“CardPhyNo”,类型为“文本型”。
参数<3>的名称为“SecNo”,类型为“字节型”。
参数<4>的名称为“sKey”,类型为“文本型”。


以下是VB 可以直接调用数据API里的数据类型!

VB源码:


Dim UserInfo As ECardAPI.ICUserInfo_Struct, Var As String, CardPhyNo As String

UserInfo.CardLevel = cmbCardType.ListIndex
UserInfo.CardNo = txtCardNo.Text
UserInfo.CardPersonPWD = txtCardPass.Text
UserInfo.CustomerCode = txtCustomersCode.Text
UserInfo.DistributorCode = txtDealersCode.Text
UserInfo.EmpName = txtEmpName.Text
UserInfo.EmpNo = txtEmpNo.Text
UserInfo.LastUseDateTime = Now
UserInfo.PersonalBag = 0                               
UserInfo.SubsidyBag = 0                                
UserInfo.SubsidyFlag = 0
UserInfo.VaildEndDate = dtpCardEndDate.Value
UserInfo.VaildStarDate = dtpCardStartDate.Value

If .objComm.SyCDAccessCard(UserInfo, CardPhyNo, txtBegBlockNo.Text, Trim(txtCardKey.Text)) = False Then
        .strMsg = "IC卡发卡失败。错误信息:" & GetSFErrorString(.objComm.ErrCode)
    Else
        .strMsg = "IC卡发卡成功"
    End If

在易语言里我用自定义数据类型 运行的时候.会提示 参数数据类型错误!

.版本 2

.数据类型 ICUserInfo_Struct, 公开
    .成员 CardLevel, 文本型, , , 卡类级别
    .成员 CardNo, 整数型, , , 卡号
    .成员 CardPersonPWD, BSTR, , , 个人密码
    .成员 CustomerCode, 整数型, , , 客户代码
    .成员 DistributorCode, 整数型, , , 供应商代码
    .成员 EmpName, BSTR, , , 姓名
    .成员 EmpNo, BSTR, , , 工号
    .成员 LastUseDateTime, 日期时间型, , , 最后操作卡时间
    .成员 PersonalBag, 整数型, , , 个人钱包
    .成员 SubsidyBag, 整数型, , , 补贴钱包
    .成员 SubsidyFlag, 整数型, , , 补贴标志
    .成员 VaildEndDate, BSTR, , , 卡有效期结束
    .成员 VaildStarDate, BSTR, , , 卡有效期开始
    .成员 CardUseTimes, 整数型, , , 刷卡次数
    .成员 GiveBag, 整数型


   头有些大了!请大虾们看看




[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 268
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2

这是ICU serinfo_Struct 数据类型结构  里面  BSTR 数据类型 易语言里面好像没有.不知道如何选择???

 在线等........................

typedef [uuid(8FE95B39-89FC-419C-9D5B-D08ABC35C246), version(1.0)]
struct tagICUserInfo_Struct {
    [helpstring("Status")   
]
    unsigned char Status;
    [helpstring("EmpNo")   
]
    BSTR EmpNo;
    [helpstring("EmpName")   
]
    BSTR EmpName;
    [helpstring("CardNo")   
]
    long CardNo;
    [helpstring("CardLevel")   
]
    unsigned char CardLevel;
    [helpstring("CardPersonPWD")   
]
    BSTR CardPersonPWD;
    [helpstring("DistributorCode")   
]
    long DistributorCode;
    [helpstring("CustomerCode")   
]
    long CustomerCode;
    [helpstring("VaildStarDate")   
]
    BSTR VaildStarDate;
    [helpstring("VaildEndDate")   
]
    BSTR VaildEndDate;
    [helpstring("TimeingIsVaildDate")   
]
    unsigned char TimeingIsVaildDate;
    [helpstring("PersonalBag")   
]
    long PersonalBag;
    [helpstring("GiveBag")   
]
    long GiveBag;
    [helpstring("SubsidyBag")   
]
    long SubsidyBag;
    [helpstring("IntegralBag")   
]
    long IntegralBag;
    [helpstring("CardUseTimes")   
]
    long CardUseTimes;
    [helpstring("LimitTimeMoney")   
]
    long LimitTimeMoney;
    [helpstring("LimitTimeTimes")   
]
    long LimitTimeTimes;
    [helpstring("LimitDayMoney")   
]
    long LimitDayMoney;
    [helpstring("LimitDayTimes")   
]
    long LimitDayTimes;
    [helpstring("LimitMonthMoney")   
]
    long LimitMonthMoney;
    [helpstring("LimitMonthTimes")   
]
    long LimitMonthTimes;
    [helpstring("LastUseDateTime")   
]
    BSTR LastUseDateTime;
    [helpstring("OrderDate")   
]
    long OrderDate;
    [helpstring("OrderData")   
]
    unsigned char OrderData;
    [helpstring("OrderCheckData")   
]
    unsigned char OrderCheckData;
    [helpstring("OrderNum")   
]
    long OrderNum;
    [helpstring("FirstPushDateTime")   
]
    BSTR FirstPushDateTime;
    [helpstring("SubsidyFlag")   
]
    long SubsidyFlag;
    [helpstring("DeviceSN")   
]
    long DeviceSN;
} ICUserInfo_Struct;

2017-4-7 11:13
0
雪    币: 20
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不是文本就是字节…bstr不是等价wchar*?
2017-4-8 09:42
0
雪    币: 6
活跃值: (64)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不会e语言呢~
2017-4-8 11:49
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你应该把  ECardAPI.ICUserInfo_Struct贴出来,如果这个是个对象的话,那么就构造一个,估计对你有难度,最简单的就是e中看不能直接创建一个  ECardAPI.ICUserInfo_Struct对象再参数传入
2017-4-8 13:57
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
晕,后面贴了,那就创建一个  ECardAPI.ICUserInfo_Struct对象,然后给属性赋值
2017-4-8 13:58
0
雪    币: 268
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
kakasasa 晕,后面贴了,那就创建一个 ECardAPI.ICUserInfo_Struct对象,然后给属性赋值
里面有BSTR  不知道是啥数据类型
2017-4-11 13:07
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
BSTR就是一个VARIANT,数据区域是个宽字符指针,其实这里你不用管.
你创建了参数对象后,给参数对象的属性赋值就行了.管它什么BSTR.
2017-4-12 10:48
0
游客
登录 | 注册 方可回帖
返回
//