Re: How do I assign values to CArray[WCHAR]?

2020-01-06 Thread ToddAndMargo via perl6-users

On 2020-01-06 22:02, ToddAndMargo via perl6-users wrote:

Hi All,

What am I doing wrong here?  How do I assign values
to CArray[WCHAR]?

I want $lpData[0] to be 0xABCD and $lpData[1] to be 0xEF12.

 > use NativeCall;
Nil

 > constant WCHAR    := uint16;
(uint16)


This was the booboo.  I forgot to initialize the array.
It should have been:

my CArray[WCHAR]  $lpData = CArray[WCHAR].new()

JJ helped me find it on Stack Overflow.


How do I assign values to CArray[WCHAR]?

2020-01-06 Thread ToddAndMargo via perl6-users

Hi All,

What am I doing wrong here?  How do I assign values
to CArray[WCHAR]?

I want $lpData[0] to be 0xABCD and $lpData[1] to be 0xEF12.

> use NativeCall;
Nil

> constant WCHAR:= uint16;
(uint16)

> my $ValueData = 0xABCDEF12;
2882400018

> my CArray[WCHAR]  $lpData;
(CArray[uint16])

> $lpData[ 0 ] =  ( $ValueData +& 0x ) +> 0x10;
Type check failed in assignment to $lpData; expected 
NativeCall::Types::CArray[uint16] but got Array ($[])

  in block  at  line 1

> $lpData[ 1 ] =$ValueData +& 0x;
Type check failed in assignment to $lpData; expected 
NativeCall::Types::CArray[uint16] but got Array ($[])

  in block  at  line 1


Many thanks,
-T