gpt4 book ai didi

delphi - Delphi 2007 中的字节数组 PAnsiChar

转载 作者:行者123 更新时间:2023-12-03 19:00:33 25 4
gpt4 key购买 nike

我有一个包含一些数据的字节数组...

CommandBytes : array of byte;

我有一个向蓝牙打印机发送命令的 VCL 功能。
VCL函数原型(prototype)是这个
SendData(PAnsiChar, Cardinal);

“此方法将字节从内存缓冲区传输到打开的设备”

如何正确传递字节数组以向打印机发送命令?

我是德尔福的新手,我试过:
SendData(PAnsiChar(@CommandBytes[0]), SizeOf(CommandBytes));

但它不起作用......

提前致谢。

最佳答案

SizeOf()在动态数组上产生指针的大小。动态数组是一种引用类型,表示为指向数组第一个元素的指针。因此SizeOf()返回指针的大小。这对你没有用。

您需要使用 Length()反而:

SendData(PAnsiChar(@CommandBytes[0]), Length(CommandBytes));

Length() 函数返回数组中元素的数量。

更重要的是,我可能会简化您转换为 PAnsiChar 的方式。 .你可以像这样更简洁地做到这一点:
SendData(PAnsiChar(CommandBytes), Length(CommandBytes));

这很有意义,因为 CommandBytes ,作为对动态数组的引用,指向数组的第一个元素。

关于delphi - Delphi 2007 中的字节数组 PAnsiChar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15896794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com