Hi,
I have a few questions about using XS to to produce a perl mod to
'wrap' around an arbitary DLL - we'll call it mydll.dll for
convienience..... I have (successfully) written the XS code to call the DLL
functions and the return values are pushed onto the XSUB calling stack.
All this works great and is fine and dandy with 'make test' working
as expected.
The problem I have is this:
I would like to distribute the mod as one big package, without
having to worry about the user separately 'installing' the mydll.dll that
I make calls to. After testing things for a bit I found that the
mod doesn't work (obviously) if it can't track down the DLL.
My problem lies with the search path used to find the DLL - after
playing around with making the ppd and installing it I've found out
that it only looks in the current executing directory, within the
path statement, and in the system directories (system32 under NT,
system under 95), this is backed up by the DevStudio Docs which say
this about DLL search paths:
(1)The directory where the executable module for the current process is located.
(2)The current directory.
(3)The Windows system directory. The GetSystemDirectory function retrieves the path
of this directory.
(4)The Windows directory. The GetWindowsDirectory function retrieves the path of
this directory.
(5)The directories listed in the PATH environment variable.
Ideally I'd like to be able to put mydll.dll into the same
directory as the module's DLL and for the module to load it from
there.(i.e that it finds it in C:\Perl\site\lib\auto\mypackage\modname\)
Is there a way of doing this? Is it something todo with Implicit
V's Explicit linking? Can I solve this by specifying something in
MakeFile.PL - I've had a poke around in the docs for Dynaloader and
see that @dl_library_path might help me out...but I'm unsure where
or how to sort this out!
Regards,
Ian Dash
---
You are currently subscribed to perl-win32-users as: [archive@jab.org]
To unsubscribe, forward this message to
[EMAIL PROTECTED]
For non-automated Mailing List support, send email to
[EMAIL PROTECTED]