Delphi中怎么将pByte->pChar?(50分)

  • 主题发起人 主题发起人 cyjsir
  • 开始时间 开始时间
C

cyjsir

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi中怎么将pByte->pChar?
用pChar(Pionter(a:pByte)),值变为空。
 
var
aa: PByte;
bb: PChar;
begin
bb:= @aa;
end;
 
var
aa: PByte;
bb: PChar;
begin
bb:= @aa;
end
bb:= @aa
指向AA的位置,但AA已经为指针,所以就变成了指针的指针了

类型转换就行了 PCHAR(PBYTE))
 
不会变成指针的指针的。
 
给地址就行了
反正都是指针
 
var
aa: PByte;
bb: PChar;
begin
Pointer(bb):= Pointer(aa);
end;
 
to 白河愁:
你这种方法,转换后,数据格式不对。
to xmcccc:
转换后,值为空。与pChar(Pionter(a:pByte))结果一样
 
var
b :pByte;
c : pChar;
bb : array[0..1] of Byte;
begin
bb[0] :=Byte('a');
bb[1] := 0;
b :=pByte(@bb);
showmessage(char(b^));
c := pchar(@bb);
showmessage(c);

end;

delphi 在显示字符串的时候,在字符的最后一个要为0,否则显示不出来,所以当你用pchar的时候,不要忘记在 字符串的末尾加 char(0),
而你使用 pbyte 的时候,则不要。
 
CopyMemory();
 
我是用DSPack的SampleGrabberBuffer(sender: TObject
Buffer: TBufferCB)将获取数据Buffer.buffer,并将Buffer.buffer传入另一个SDK中,而这个SDK处理的接口类别是Pchar.
怎么转都不行?
 
哎!你的第一个字节为0,那么查看pchar就为空了!
其实已经装换了,例如
0,5,6 --> #0#5#6 --> 显示为空!
 
强转就行了..根本不需要什么转换...
要是为空,只是你写的问题了.
PChar与PBYTE都是指针...只不过你转换之后你看到的有所不同
 
应该就是一个东西了,为什么要转呢。
 
Char和Byte就是一个东西,转他做什么
 
后退
顶部