Sisyphus
2008-09-03 13:23:56 UTC
Hi,
This stems from http://www.perlmonks.org/index.pl?node_id=708569 .
Basically, if you have a perl dll (by which I mean, eg, the Digest::SHA dll)
and you want to directly access a function from within that dll using XS or
Inline::C, how do you do that ?
With most Windows dll's, you can just use LoadLibrary() to get a handle to
the dll, and then use GetProcAddress() to return the address of the function
you want to access.
For the first part, there's no problem - one can easily use LoadLibrary()
to return a handle to SHA.dll. It's the second part that presents the
problem. GetProcAddress() can only return the address of functions/variables
that are *exported* ... and most of the functions in SHA.dll (eg 'hashsize')
are *not* exported.
How, therefore, can I get at the 'hashsize' function from an Inline::C
script (or an XSub) on Win32 ?
Cheers,
Rob
This stems from http://www.perlmonks.org/index.pl?node_id=708569 .
Basically, if you have a perl dll (by which I mean, eg, the Digest::SHA dll)
and you want to directly access a function from within that dll using XS or
Inline::C, how do you do that ?
With most Windows dll's, you can just use LoadLibrary() to get a handle to
the dll, and then use GetProcAddress() to return the address of the function
you want to access.
For the first part, there's no problem - one can easily use LoadLibrary()
to return a handle to SHA.dll. It's the second part that presents the
problem. GetProcAddress() can only return the address of functions/variables
that are *exported* ... and most of the functions in SHA.dll (eg 'hashsize')
are *not* exported.
How, therefore, can I get at the 'hashsize' function from an Inline::C
script (or an XSub) on Win32 ?
Cheers,
Rob