gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 00:12:02 27 4
gpt4 key购买 nike

我需要将 C/C++ 代码 *(PUCHAR)(..) 传递给 delphi,这样我就可以毫无错误地使用它,但我不知道该怎么做。在我在 IRC 中提出的问题中,有人告诉我“它转换为指向 unsigned char 的指针并取消引用该指针,但我认为 Delphi 中没有这样的东西”。

这是一个例子:

DWORD isENABLED;

...

*(PUCHAR)(isENABLED) = 0x00;

在Delphi中会是这样吗?

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

我知道这个问题可能写得不对,但我不知道该怎么问。感谢您的帮助。

最佳答案

UCHAR 是一个unsigned char。这就是 Delphi 中的 BytePUCHAR 是指向UCHAR 的指针。这是 Delphi 中的 PByte

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

所以 Delphi 等效代码是:

PByte(isENABLED)^ := $00;

如果您的 Windows 单元定义了 PUCHAR,那么您可以随意将其写成:

PUCHAR(isENABLED)^ := $00;

关于c++ - 如何正确传递 C/C++ *(PUCHAR)(..)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31709867/

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