Mik*_*ord 2 c c++ delphi delphi-7
我需要将C/C++代码*(PUCHAR)(..)传递给delphi,这样我就可以使用它而没有错误,但我不知道究竟是怎么做的.在我在IRC中提出的问题中,有人告诉我" 它转向指向未签名的char和指针的指针,但我认为在Delphi中没有这样的东西 ".
这是一个例子:
DWORD isENABLED;
...
*(PUCHAR)(isENABLED) = 0x00;
Run Code Online (Sandbox Code Playgroud)
在Delphi中会是这样的吗?
PUCHAR(isENABLED) := $00; // Is it right?
Run Code Online (Sandbox Code Playgroud)
我知道这个问题可能没有写好,但我不知道究竟是怎么回事.谢谢你的帮助.
UCHAR是一个unsigned char.那是Byte在Delphi中.PUCHAR是指针UCHAR.那是PByte在Delphi中.
原始代码将其DWORD转换为指针unsigned char,然后取消引用该指针,并为其指定值unsigned char.
所以Delphi等效代码是:
PByte(isENABLED)^ := $00;
Run Code Online (Sandbox Code Playgroud)
如果您的Windows单元定义,PUCHAR则可以随意将其写为:
PUCHAR(isENABLED)^ := $00;
Run Code Online (Sandbox Code Playgroud)