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