如何正确传递C / C ++ *(PUCHAR)(..)?

时间:2015-07-29 19:52:07

标签: c++ c delphi delphi-7

我需要将C / C ++代码*(PUCHAR)(..)传递给delphi,这样我就可以毫无错误地使用它,但我不知道究竟是怎么做的。在我在IRC中提出的问题中,有人告诉我" 它投射到指向未签名的char并指向该指针,但我不认为在Delphi中有这样的东西& #34;

以下是一个例子:

DWORD isENABLED;

...

*(PUCHAR)(isENABLED) = 0x00;

在Delphi中会是这样的吗?

PUCHAR(isENABLED) := $00;   // Is it right?

我知道这个问题可能没有写好,但我不知道究竟是怎么回事。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:6)

UCHARunsigned char。这是德尔福的BytePUCHAR是指向UCHAR的指针。这是德尔福的PByte

原始代码将DWORD转换为指向unsigned char的指针,然后取消引用该指针,并为该unsigned char指定值。

所以Delphi等效代码是:

PByte(isENABLED)^ := $00;

如果您的Windows设备定义了PUCHAR,请随时将其写为:

PUCHAR(isENABLED)^ := $00;