in reply to Re^2: Problems with Win32::API module
in thread Problems with Win32::API module
The "N" in "[N]" causes $lpBuffer to be interpretted as a number. "\0" x 64 as a number is just 0. Although you tell us nothing about ZP4StartSession(), it appears clear that what you want to pass to it is a pointer to the buffer you allocated in $lpBuffer. Win32::API doesn't support this type of argument very well / easily. It only supports pointers to '\0'-terminated strings.
However, it might work to use [P] instead. That depends on implementation details of Win32::API that I am not certain of.
If that doesn't work, then you should probably do:
my $lpBuffer= "\0" x 64; my $bufAddr= unpack "L", pack "p", $lpBuffer; #... ... $ZP4StartSession->Call( $bufAddr ) ...
- tye
|
---|