----- Original Message ----- From: "W. Terry Hardgrave"

Here is my latest try which still does not find the external references:

link multiple DLLs.
use Inline C => Config => LIBS => '-LC:\workspace\work\inline -lX1 -lX2';

This would be correct for linking to the import libs (libX1.a/libX2.a or X1.lib/X2.lib) - in which case the 2 dll's will still need to be locatable. Read on ....

If someone can suggest the correct syntax, suggest the best place to
store the DLLs
for automatic access, or point to additional documentation, I would
certainly appreciate it.

The dll's just need to be anywhere in the path - at least that's the simplest option.

In general, I am trying to wrap third-party proprietary APIs for use
within ActiveState Perl.

If you're using a Microsoft Compiler you can't link directly to dll's - you need to link directly to the import lib (.lib).

If you're using the MinGW port of gcc with ActivePerl (as I often do), then you *can* link directly to a dll That's a rather unusual practice, and I think that, from within Inline::C, you need to do it as:

use Inline C => Config => MYEXTLIB => "C:\\workspace\\work\\inline\\X1.dll C:\\workspace\\work\\inline\\X2.dll";

(assuming I've got the actual names of the dll's correct). And those dll's still need to be in your path, so that they can be found at runtime.

This usage of MYEXTLIB seems to me to differ from the ExtUtils::MakeMaker usage of the same symbol. So it may be that Inline::C is not doing quite the right thing, though it has worked fine for me in the past - except that I've only ever tried to use it with *one* dll, not multiple dll's as you are wanting. And I don't know offhand how one is supposed to delimit between libraries - ie is it a space as I've used ? or something else ? or does this techniquie work simply not work with multiple dll's ?

See how you get on.
The simplest (and normal) thing to do is to have the dll's in the system path, and linkl to the *import libraries* as per your code above.

Cheers,
Rob

Reply via email to