如何正确传递 C/C++ *(PUCHAR)(..)?
How to pass C/C++ *(PUCHAR)(..) correctly?
我需要将 C/C++ 代码 *(PUCHAR)(..) 传递给 delphi 这样我就可以毫无错误地使用它,但我不知道具体怎么做.在我在 IRC 中提出的问题中,有人告诉我“ 它转换为指向 unsigned char 的指针并取消引用该指针,但我认为 Delphi[=22= 中没有这样的东西]".
这是一个例子:
DWORD isENABLED;
...
*(PUCHAR)(isENABLED) = 0x00;
在Delphi会是这样吗?
PUCHAR(isENABLED) := [=12=]; // Is it right?
我知道这个问题可能写得不好,但我不知道该怎么问。
感谢您的帮助。
UCHAR
是一个 unsigned char
。那是 Delphi 中的 Byte
。 PUCHAR
是指向 UCHAR
的指针。那是 Delphi 中的 PByte
。
原始代码将 DWORD
转换为指向 unsigned char
的指针,然后取消引用该指针,并为 unsigned char
赋值。
所以 Delphi 等效代码是:
PByte(isENABLED)^ := [=10=];
如果您的 Windows 单位定义了 PUCHAR
那么请随意将其写为:
PUCHAR(isENABLED)^ := [=11=];
我需要将 C/C++ 代码 *(PUCHAR)(..) 传递给 delphi 这样我就可以毫无错误地使用它,但我不知道具体怎么做.在我在 IRC 中提出的问题中,有人告诉我“ 它转换为指向 unsigned char 的指针并取消引用该指针,但我认为 Delphi[=22= 中没有这样的东西]".
这是一个例子:
DWORD isENABLED;
...
*(PUCHAR)(isENABLED) = 0x00;
在Delphi会是这样吗?
PUCHAR(isENABLED) := [=12=]; // Is it right?
我知道这个问题可能写得不好,但我不知道该怎么问。 感谢您的帮助。
UCHAR
是一个 unsigned char
。那是 Delphi 中的 Byte
。 PUCHAR
是指向 UCHAR
的指针。那是 Delphi 中的 PByte
。
原始代码将 DWORD
转换为指向 unsigned char
的指针,然后取消引用该指针,并为 unsigned char
赋值。
所以 Delphi 等效代码是:
PByte(isENABLED)^ := [=10=];
如果您的 Windows 单位定义了 PUCHAR
那么请随意将其写为:
PUCHAR(isENABLED)^ := [=11=];