On Wed, 1 Jan 2020 at 03:48, ToddAndMargo via perl6-users <perl6-us...@perl.org <mailto:perl6-us...@perl.org>> wrote:

    Hi All,

    Request for Enhancement: Native Call error

    perl6 -I. -e "use WinReg :WinReadRegKey; say WinReadRegKey(
    HKEY_LOCAL_MACHINE,
    Q[SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system],
    Q[EnableLUA] );"

    Native call expected argument that references a native integer, but got
    P6int in method CALL-ME at
    C:\rakudo\share\perl6\sources\947BDAB9F96E0E5FCCB383124F923A6BF6F8D76B
    (NativeCall) line 587 in sub WinReadRegKey at
    K:\Windows\NtUtil\WinReg.pm6 (WinReg) line 177 in block <unit> at -e
    line 1


    "references a native integer, but got P6int" is NOT REALLY HELPFUL.
    Would you please tell me which one threw this error?


    Many thanks,
    -T

On 2020-01-01 07:06, WFB wrote:
Hi Todd,
Sounds like in WinReg.pm6 line 177 is a definition like :
 sub RegOpenKeyExW( DWORD, WCHARS, DWORD, DWORD, DWORD is rw) is native("Kernel32.dll") returns DWORD { * }; and you put a "my $i = 0" variable instead of "my int32 $i = 0" in it somewhere.

Greetings,
Wolf

Hi Wolf,

I did figure it out.  I would just like the error message
to be a little more helpful.

sub RegQueryValueExW( DWORD, WCHARS, DWORD, DWORD, CArray[BYTE] is rw, DWORD is rw ) is native( "Kernel32.dll" ) is symbol( "RegQueryValueExW" ) returns DWORD { * };

$RtnCode = RegQueryValueExW( $Handle, $lpValueName, 0, $lpType, $lpData, $lpcbData );

-T

Reply via email to