问个动态库声明的问题,C#声明,转成DELPHI声明

shuihan20e 2017-07-24 02:32:34
许久没搞DELPHI了,有个小程序,厂家给了C#的声明,翻译过来忘记了,有些类型,万能的群友帮下忙


[DllImport("RdCard.dll")]
extern static int UCommand1(System.Byte[] pCmd, ref int parg0, ref int parg1, ref int parg2);

这样声明

function UCommand(pCmd: PByte; var Parg0: Integer; var Parg1: Integer; var Parg2: Integer): Integer; stdcall; external 'RdCard.dll';


TByte = array[0..0] of Byte; 这样声明pbyte不对吗?
...全文
340 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
ret := UCommand(@cmd[0], para0, para1, para2); 另外,Pascal支持合并同类声明: function UCommand(pCmd: PByte; var Parg0, Parg1, Parg2: Integer): Integer; stdcall; external 'RdCard.dll';
shuihan20e 2017-07-24
  • 打赏
  • 举报
回复
function TForm1.InitCom(nPort: Integer; out Msg: string): BOOL;
var
  cmd: array of Byte;
  para0, para1, para2: Integer;
  ret: Integer;
begin
  SetLength(cmd, 1);
  cmd[0] := $41;
  para0 := 0;
  para1 := 8811;
  para2 := 9986;

  ret := UCommand(@cmd, para0, para1, para2);

  if (ret = 62171)or(ret = -5)or(ret = -7) then
  begin
    Msg := 'success';
    Result := True;
    //Timer1.Enabled := True;
  end else
  begin
    Msg := 'false';
    Result := False;
  end;
end;
这样调用不对吗

16,748

社区成员

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

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