Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Help avoiding exception in Win32::API ?

by PodMaster (Abbot)
on Sep 15, 2005 at 07:53 UTC ( #492134=note: print w/ replies, xml ) Need Help??


in reply to Help avoiding exception in Win32::API ?

Every time I call a C-function that uses arguments, I get an exception that causes Perl to quit.
What exception (what's the message you receive)? You need to investigate (maybe fire up Event Viewer, or a debugger).

You might need to make sure that your DLL is compiled with the -MD flag (or whatever perl -V:ccflags reports).

update: also, try enabling Win32::API::DEBUG and edit API.h and #define WIN32_API_DEBUG.

I did some testing, and I get a memory access violation in the perl dll, and I've tracked it down to API.xs line 651         XSRETURN_IV(lReturn);. It happens with Win32-API-0.41 and perl 5.8.4, 5.6.2, 5.8.7, but not 5.8.6, go figure. XSRETURN_IV comes from XSUB.h (official api). You should solicit help from the author and the perl5-porters. Here's the verbatim debug output

(XS)Win32::API::Call: params[0].t=1, .u=137 (XS)Win32::API::Call: parameter 0 (N) is 137 (XS)Win32::API::Call: Calling ApiFunctionInteger() (XS)Win32::API::Call: ApiFunctionInteger returned 138 (XS)Win32::API::Call: freeing memory... (XS)Win32::API::Call: returning to caller. (XS)Win32::API::Call: returning 138.

MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
** The third rule of perl club is a statement of fact: pod is sexy.


Comment on Re: Help avoiding exception in Win32::API ?
Select or Download Code
Replies are listed 'Best First'.
Re^2: Help avoiding exception in Win32::API ?
by jimbojones (Friar) on Sep 16, 2005 at 14:18 UTC
    Hi

    Thanks for the suggestions. I will pull down the source and rebuild Win32::API as you suggest (I had been using the pre-compiled binaries from Activestate).

    I've also started looking at Swig to create a direct connection to the actual .dll that I need to use.

    Thanks for the help, J

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (6)
As of 2015-07-31 03:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (274 votes), past polls