in reply to Re: Win32::API - How to call an Imported function with Win32::API::Types ?
in thread Win32::API - How to call an Imported function with Win32::API::Types ?
I still can't get it to work with Import. As you suggest, I have tried:
use strict; use Win32::API; Win32::API::Type->typedef( 'OMDTEXTZ', 'TCHAR'); Win32::API::Type->typedef( 'OMDERROR', 'ULONG'); Win32::API::Type->typedef( 'OMD32U', 'ULONG' ); Win32::API::Type->typedef( 'OMDCLIENT', 'ULONG' ); Win32::API->Import( 'omdapi', 'OMDERROR OMDClientCreate ( OMDTEXTZ* pUsername, OMDTEXTZ* pPassword, OMDTEXTZ* pDomain, OMD32U options, OMDCLIENT* pClient )' ); my $username = 'user1'; my $password = 'pass1'; my $domain = 'domain1'; my $options = 0; my $client; my $return = OMDClientCreate( $username, $password, $domain, $options, + $client ) or die $^E;
And although the call to OMDClientCreate does not die, it also puts nothing into the $client variable.
However, if I try it using a parameter list instead:
use strict; use Win32::API; my $function = Win32::API->new( 'omdapi', 'OMDClientCreate', 'PPPIP', +'I'); my $client = pack('L', 0); my $username = 'user1'; my $password = 'pass1;; my $domain = 'domain1'; my $return = $function->Call( $username, $password, $domain, 0, $clien +t );
it actually works (which I have confirmed by using Data::Dumper on the $client variable).
Am I missing something?
Thanks,
fx, Infinity is Colourless
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Win32::API - How to call an Imported function with Win32::API::Types ?
by BrowserUk (Patriarch) on Jul 02, 2004 at 08:37 UTC | |
by fx (Pilgrim) on Jul 02, 2004 at 11:24 UTC | |
by fx (Pilgrim) on Jul 02, 2004 at 11:29 UTC | |
by BrowserUk (Patriarch) on Jul 02, 2004 at 13:11 UTC |