关于调用vc 编写的 dll的问题???

Brind 2006-04-02 02:55:00
bool ByteToString(unsigned char *ucBuf, int nLen, char *chBuf) // vc函数

function ByteToString(ucBuf : PByte; nLen : Integer; chBuf : PChar) : Boolean; External 'TestDelphi.dll'; // delphi函数声明, 不过里面的类型我不确定是否正确

// 调用部分
procedure TForm1.BitBtn1Click(Sender: TObject);
var
ucTestBuf : array[0..8] of byte;
chTestBuf : array[0..16] of char;
begin

ByteToString(ucTestBuf, 8, chTestBuf); // 这里编译不通过, 类型不匹配

end;

end.

请问该怎么正确声明, 怎样把数组里的内容正确的传给dll?
...全文
82 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Brind 2006-04-02
  • 打赏
  • 举报
回复
implementation
function ByteToString(ucBuf : PByte; nLen : Integer; chBuf : PChar) : Boolean; stdcall; External 'TestDelphi.dll';

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
var
ucTestBuf : array[0..7] of byte;
chTestBuf : array[0..15] of char;
begin
ucTestBuf[0] := $80;
ucTestBuf[1] := $CE;
ucTestBuf[2] := $82;
ucTestBuf[3] := $EF;
ucTestBuf[4] := $84;
ucTestBuf[5] := $B9;
ucTestBuf[6] := $86;
ucTestBuf[7] := $FF;

ByteToString(@ucTestBuf, 8, chTestBuf);
ShowMessage('转换后的字符串: ' + chTestBuf);

end;

多谢各位, 终于成功了 :)
madyak 2006-04-02
  • 打赏
  • 举报
回复
function ByteToString(ucBuf : PByte; nLen : Integer; chBuf : PChar) : Boolean;stdcall; External 'TestDelphi.dll';//要加Stdcall

//要这样调用
ByteToString(@ucTestBuf[0], 8, @chTestBuf[0]);
coreblood 2006-04-02
  • 打赏
  • 举报
回复
数组在内存中为分配连续地址空间
coreblood 2006-04-02
  • 打赏
  • 举报
回复
function ByteToString(ucBuf : Byte; nLen : Integer; chBuf : PChar) : Boolean; External 'TestDelphi.dll'

procedure TForm1.BitBtn1Click(Sender: TObject);
var
ucTestBuf : array[0..8] of byte;
chTestBuf : array[0..16] of char;
begin

ByteToString(ucTestBuf[0], 8, @chTestBuf[0]); // 这里编译不通过, 类型不匹配
end;
cuteant 2006-04-02
  • 打赏
  • 举报
回复
用Type定义一个类型
Type
TUcTestBuf: array[0..8] of byte;
TChTestBuf: array[0..16] of char;

// 调用部分
procedure TForm1.BitBtn1Click(Sender: TObject);
var
ucTestBuf : TUcTestBuf;
chTestBuf : TChTestBuf;
begin

ByteToString(ucTestBuf, 8, chTestBuf); // 这里编译不通过, 类型不匹配
end;


ByteToString函数声明的时候也用TUcTestBuf和TChTestBuf

16,748

社区成员

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

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