首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB 调用动态库,该怎么处理

2013-01-21 
VB 调用动态库如题,需要用VB做一个应用程序的接口对方提供了一文档如下。动态库名称:ICCInter.dllInt IC_Re

VB 调用动态库
如题,需要用VB做一个应用程序的接口
对方提供了一文档如下。
动态库名称:ICCInter.dll
Int IC_Readinfo(unsigned char *OutData)
函数说明:读卡信息
输入值:无
输出值:OutData,返回卡信息,每个字段之间用~分隔
返回值:=0 表示成功
        <0 表示失败


OutData(输入值):
序号      数据项          备注
1          卡号          20位(每卡唯一)
2         姓名     
3         证件号码
4         类型
5         性别
6         接触式卡号

返回码
状态         定义
0            正常
-200         打开错误
-201         关闭错误



以上是提供的接口文档,我是初学者,希望大家能用VB写点代码给予提示
谢谢了

 
VB?接口
[解决办法]
声明的方式有两种:

1
Public Declare Function  IC_Readinfo Lib "ICCInter.dll"  (OutData as Byte) As Long

Dim od(255) As Byte, Ret As Long, CardInfo As String
Ret = IC_Readinfo(od(0))  
If Ret = 0 Then CardInfo = StrConv(od, vbUnicode)

2 如果确信返回值都是可打印字符
Public Declare Function  IC_Readinfo Lib "ICCInter.dll"  (OutData as String) As Long

Dim CardInfo As String, Ret As Long

CardInfo = String(256, Chr(0))
Ret = IC_Readinfo(CardInfo)  

现在缺几个 API 信息:
* OutData 的最大长度(假定不超过 256 字节)
* OutData 各个域的长度

另外,“位”的说法很外行,应该不是指比特,如果输出是字符串,应该是字符数,或字节数。
[解决办法]
我喜欢off123的第一种方法。

热点排行