Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: [SOLVED] Dereferencing a pointer returned from Win32::API with unpack 'p'

by sundialsvc4 (Abbot)
on Aug 13, 2015 at 03:10 UTC ( #1138371=note: print w/replies, xml ) Need Help??


in reply to [SOLVED] Dereferencing a pointer returned from Win32::API with unpack 'p'

Quite honestly, I feel very uncomfortable with the thought of any solution that approaches the problem-at-hand at this level of detail. I think that I would prefer instead to take an XS approach ... to create a formal “wrapper” for this .DLL using methods that would insulate ... from me and from Perl ... concerns such as “exactly how-many bytes wide a Pointer is.”

I simply cannot divorce myself from the thought that this very-superficial approach is “intrinsically unmaintainable,” not to mention that I (or, my team) would wind-up being the very ones who would wind up being tasked to maintain it!   I would, therefore, opt instead to create an insulating layer of C/C++ code that would specifically insulate the Perl interpreter environment from the vagaries of “my DLL.”   I would vastly prefer this to any alternative which obliged my Perl source-code to be dependent(!) upon such niggling details as, “exactly how many bytes wide is pchar * on this platform, today?”

Having already dealt with too-many “software designs that dropped-dead when Intel Corporation came up with a yet-another amazing new miracle,” I am loathe to specify another one . . .

  • Comment on Re: [SOLVED] Dereferencing a pointer returned from Win32::API with unpack 'p'

Replies are listed 'Best First'.
Re^2: [SOLVED] Dereferencing a pointer returned from Win32::API with unpack 'p'
by ikegami (Pope) on Aug 13, 2015 at 15:38 UTC

    I would vastly prefer this to any alternative which obliged my Perl source-code to be dependent(!) upon such niggling details as, “exactly how many bytes wide is pchar * on this platform, today?”

    huh, you have to use typedefs in C just as you would in Perl. Avoiding them is what would cause the problems you describe.

Re^2: [SOLVED] Dereferencing a pointer returned from Win32::API with unpack 'p'
by Anonymous Monk on Aug 13, 2015 at 03:20 UTC
    sundialsvc4:

    Quite honestly, I feel very uncomfortable with the thought of any solution that approaches the problem-at-hand at this level of detail. I think that I would prefer instead to take an XS approach ... to create a formal “wrapper” for this .DLL using methods that would insulate ... from me and from Perl ... concerns such as “exactly how-many bytes wide a Pointer is.”

    I simply cannot divorce myself from the thought that this very-superficial approach is “intrinsically unmaintainable,” not to mention that I (or, my team) would wind-up being the very ones who would wind up being tasked to maintain it!   I would, therefore, opt instead to create an insulating layer of C/C++ code that would specifically insulate the Perl interpreter environment from the vagaries of “my DLL.”   I would vastly prefer this to any alternative which obliged my Perl source-code to be dependent(!) upon such niggling details as, “exactly how many bytes wide is pchar * on this platform, today?”

    Having already dealt with too-many “software designs that dropped-dead when Intel Corporation came up with a yet-another amazing new miracle,” I am loathe to specify another one . . .

    The comfort of a spammer is of no consequence to programmers, flush it flushells

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2019-10-21 18:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?