Rogers, John wrote on 04/20/2005 11:26:52 PM:

> Rob and Lloyd, 
> Robs code actually works with gs8.15 
> >I've just now noticed that the function you're accessing is called 
> >'gsapi_revision' whereas I'm accessing 'gsdll_revision'. 
> I got gsapi_ from the api.htm doc with gs8.15 gsdll_ is depreciated. 
> A dll export browser shows both though.  I assume there the same, 
> only different format parameters 
> Cant make gsapi_ work though. 
> A Win32::API::Struct solution would be interesting though, following
> gives protection fault "memory can not be written. 
> ######## 
> use strict; 
> use Win32::API; 
> my($GS_Rev,$rev,$DLL,$size); 
> Win32::API::Struct->typedef( REVINFO => qw { 
>                              CHAR *product; 
>                              CHAR *copyright; 
>                              LONG revision; 
>                              LONG revisiondate; 
>                             } ); 
> $rev = Win32::API::Struct->new('REVINFO'); 
> $DLL = 'C:\gs\gs8.15\bin\gsdll32.dll'; 
> $GS_Rev = Win32::API->new($DLL,'gsdll_revision','SL','V') 
>     or die "no-worky $! $^E"; 
> ### need to fix interface spec 
> # 

What is the value of $size? I don't see where it is set. (Although I 
doubt this would result in a protection fault.) It appears that the 
problem is the semantics of using a Struct in a Win32 call.

> $GS_Rev->Call($rev,$size); 
> print $rev->{revision}; 
> 

_______________________________________________
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to