Мне нужно передать код C / C ++ * (PUCHAR) (..) в Delphi, чтобы я мог использовать его без ошибок, но я не знаю, как именно это сделать. На вопрос, который я задал в IRC, кто-то сказал мне, чтоон приводит к указателю на unsigned char и разыменовывает этот указатель, но я не думаю, что в Delphi есть такая вещь».
Вот пример:
DWORD isENABLED;
...
*(PUCHAR)(isENABLED) = 0x00;
В Delphi будет так?
PUCHAR(isENABLED) := $00; // Is it right?
Я знаю, что этот вопрос не может быть правильно написан, но я не знаю, как именно это задать.
Спасибо за вашу помощь.
UCHAR
является unsigned char
, Это Byte
в Дельфи. PUCHAR
это указатель на UCHAR
, Это PByte
в Дельфи.
Оригинальный код DWORD
быть указателем на unsigned char
, затем отменяет ссылки на этот указатель и присваивает значение этому unsigned char
,
Итак, эквивалентный код Delphi:
PByte(isENABLED)^ := $00;
Если ваш модуль Windows определяет PUCHAR
тогда не стесняйтесь написать это как:
PUCHAR(isENABLED)^ := $00;