VB.net代码改写为delphi

huijinsoft1 2012-05-11 06:38:50

'取得识别结果
Private Declare Function GetRecogResult Lib "IDCard.dll" (ByVal nIndex As Integer, ByRef lpBuffer As Byte, ByRef nBufferLen As Integer) As Integer


'获取识别结果

Dim MAX_CH_NUM As Integer = 128
Dim szFieldValue As String
Dim szFieldName As String
Dim a As Byte()
Dim b As Byte()
szFieldName = New String(CChar(""), 128)
szFieldValue = New String(CChar(""), 128)
Dim nIndex As Integer = 1
ResultTextBox.Text = "识别成功" & vbCrLf
Do While (1)
Dim strTmp As String
Dim strTmp1 As String
b = System.Text.Encoding.Unicode.GetBytes(szFieldValue)
'获取nIndex对应的识别内容
nRet = GetRecogResult(nIndex, b(0), MAX_CH_NUM)
strTmp = System.Text.Encoding.Unicode.GetString(b) & vbCrLf
If nRet = 3 Then
Exit Sub
End If
'获取识别的字段名称,nIndex对应的字段名称可以查开发文档
Dim nnRet As Integer
a = System.Text.Encoding.Unicode.GetBytes(szFieldName)
nnRet = GetFieldName(nIndex, a(0), MAX_CH_NUM)
strTmp1 = System.Text.Encoding.Unicode.GetString(a) & ":"
'用于显示
If nnRet = 0 Then
ResultTextBox.Text += strTmp1
ResultTextBox.Text += ":"
ResultTextBox.Text += strTmp
ResultTextBox.Text += vbCrLf

End If
nIndex += 1
Loop
...全文
108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuihan20e 2012-05-14
  • 打赏
  • 举报
回复
vb中string对应delphi中pchar,然后就是循环按位取
bdmh 2012-05-14
  • 打赏
  • 举报
回复
function GetRecogResult(nIndex:Integer;var lpBuffer:Byte;var nBufferLen:Integer):Integer;stdcall;external 'IDCard.dll' ;


GetBytes, GetString 用Move函数进行字符串和字节数组的赋值

GetFieldName不知来源
shuihan20e 2012-05-14
  • 打赏
  • 举报
回复
function GetRecogResult(nIndex: integer; var lpBuffer: Byte;var nBufferLen: integer);stdcall;external 'IDCard';

前面不是回答过一次了吗?数据类型对应准了就可以
huijinsoft1 2012-05-13
  • 打赏
  • 举报
回复
有人会吗?
huijinsoft1 2012-05-12
  • 打赏
  • 举报
回复
有没有人会啊.
kaikai_kk 2012-05-12
  • 打赏
  • 举报
回复
就是定义一些变量,然后调用函数,把返回值赋值给这些变量,最后把结果显示在TextBox里面
huijinsoft1 2012-05-11
  • 打赏
  • 举报
回复
各位帮忙看一下了.

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧