許久沒搞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不對嗎?
uj5u.com熱心網友回復:
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;
這樣呼叫不對嗎
uj5u.com熱心網友回復:
ret := UCommand(@cmd[0], para0, para1, para2);另外,Pascal支持合并同類宣告:
function UCommand(pCmd: PByte; var Parg0, Parg1, Parg2: Integer): Integer; stdcall; external 'RdCard.dll';
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52157.html
標籤:語言基礎/算法/系統設計
上一篇:問一個簡單的控制元件問題
