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

求 将vb代码转成delphi 急该怎么处理

2013-04-20 
求 将vb代码转成delphi 急~~~~~在做一个读卡器的接口。只给了一个vb的demo 。怎么试也不成dll 参数Private D

求 将vb代码转成delphi 急~~~~~
在做一个读卡器的接口。只给了一个vb的demo 。怎么试也不成
dll 参数
Private Declare Function ic_init Lib "MWIC_32" (ByVal port As Long, ByVal baud As Long) As Long

Private Declare Function readCard Lib "BGCard" (ByVal icDev As Long, ByVal userCode As String, cardAmount As Single, meterAmount As Single, TestAmount As Single, inserted As Byte) As Long

Private Declare Function writeCard Lib "BGCard" (ByVal icDev As Long, ByVal userCode As String, ByVal Amount As Single, ByVal saveInfo As String) As Long

//读卡部分
    Dim icDev As Long
    Dim reVal As Long
    Dim userCode As String * 8
    Dim cardAmount, meterAmount, TestAmount As Single
    Dim inserted As Byte
    icDev = ic_init(0, 9600) '串口一
    reVal = readCard(icDev, userCode, cardAmount, meterAmount, TestAmount, inserted)
    If reVal = 0 Then
        MsgBox "读卡成功。用户号:" & userCode & ", 卡上气量:" & cardAmount & ""
    Else
        MsgBox "读卡失败,错误号:" & reVal
    End If
    ic_exit icDev

//写卡部分

'////全局变量,保存返回信息
Private Sub WriteInfo(s As String)
Open "c:\saveinf.txt" For Output As #1
Print #1, s
Close #1
End Sub
Private Function ReadInfo() As String
Open "c:\saveinf.txt" For Input As #1
Dim FileData As String
Input #1, FileData
ReadInfo = FileData
Close #1
End Function


    Dim icDev As Long
    Dim reVal As Long
    Dim userCode As String * 8
    Dim saveInfo As String * 16
    icDev = ic_init(0, 9600) '串口一
    userCode = "12345678"
    saveInfo = ReadInfo
    reVal = writeCard(icDev, userCode, 10, saveInfo)
    If reVal = 0 Then
        WriteInfo saveInfo
        MsgBox "写卡成功。"
    Else
        MsgBox "写卡失败,错误号:" & reVal
    End If
    ic_exit icDev

拜托各位大侠了!!!!!!!!!
[解决办法]


// 接口
function readCard(icDev: Integer; userCode: PChar; var cardAmount, meterAmount,
  TestAmout: Single; var inserted: Byte): Integer; stdcall; external 'BGCard.dll';

function writeCard(icDev: Integer; userCode: PChar; Amount: Single; saveInfo:


  PChar): Integer; stdcall; external 'BGCard.dll';

......

// 读卡部分
var
  icDec, reVal: Integer;
  userCode: array[0..7] of Char;
  cardAmount, meterAmount, TestAmount: Single;
  inserted: Byte;
begin
  // icDec := ic_init(0, 9600);  没交代
  reVal := readCard(icDec, userCode, cardAmount, meterAmount, TestAmount,
    inserted);
  if reVal = 0 then
    ShowMessage(Format('读卡成功。用户号: %d , 卡上气量: %d', [userCode,
      cardAmount]))
  else
    ShowMessage(Format('读卡失败,错误号: %d', [reVal]));
  //ic_exit icDev  没交代
end;

......

// 写卡部分
var
  icDev, reVal: Integer;
  userCode: array[0..7] of Char;
  saveInfo: array[0..15] of Char;
begin
  icDec := ic_init(0, 9600);
  userCode := '12345678';
  saveInfo := ReadInfo;
  reVal := writeCard(icDec, userCode, 10, saveInfo);
  if reVal = 0 then
  begin
    // WriteInfo saveInfo   没交代
    ShowMessage('写卡成功。')
  end
  else
    ShowMessage(Format('写卡失败,错误号: %d', [reVal]));
  // ic_exit icDev  没交代
end;

热点排行