Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Problems with Win32::API module

by shigetsu (Hermit)
on Apr 30, 2007 at 20:31 UTC ( [id://612861]=note: print w/replies, xml ) Need Help??


in reply to Problems with Win32::API module

My guess is that $LLHandle is first 'introduced' within your code by the call of Call($LLHandle) and thus is undefined. The use of strictures, i.e.

#!/usr/bin/perl use strict; use warnings;

would have caught that though.

Unless $LLHandle is exported per default by Win32::API, which I don't know. But I saw no mention of $LLHandle in Win32::API's documentation.

Perhaps you accidentally forgot to include some relevant code?

Replies are listed 'Best First'.
Re^2: Problems with Win32::API module
by Anonymous Monk on May 01, 2007 at 12:48 UTC
    Here is the corrected code.. my fault:
    #!/usr/bin/perl use Win32::API; my $lpBuffer = "\0" x 64; my $ZP4StartSession = new Win32::API("ZP4", "ZP4StartSession", [N], P) + || die Win32::FormatMessage(Win32::GetLastError); my $LLHandle = $ZP4StartSession->Call($lpBuffer) || die Win32::FormatM +essage(Win32::GetLastError);

      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        

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://612861]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (4)
As of 2024-03-28 14:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found