On Sun, Nov 20, 2022 at 3:48 AM ToddAndMargo via perl6-users
<perl6-us...@perl.org <mailto:perl6-us...@perl.org>> wrote:
Hi All,
In one of my native call, I get returned a
pointer to a DWORD (uint32).
How do I turn that into the actual value
in the DWORD?
Many thanks,
-T
On 11/20/22 16:00, Clifton Wood wrote:
@ToddAndMargo,
Two ways:
- Use "my CArray[uint32] $p", use $p as your parameter, and access the
value as "$p[0]"
or
- Use "my Pointer[uint32] $p" and use "$p.deref"
My personal preference is the former, as it is the best way to access
AND set the actual former value. The latter can only deref. To my
knowledge, you cannot set the referenced value of a Pointer type. I do
reserve the right to be wrong on this, though.
Hi Clifton,
I have a pointer $p (from a Windows API call)
that points to a spot in memory that is 24
bytes long.
# Where do I tell it I want 24 bytes back?
my $ca = CArray[uint8].new( 0xFF ** 24 )
$ca = $p.deref;
Internal error: unhandled target type
Yours in confusion,
-T