in reply to Re: From Cygwin to ActiveState
in thread From Cygwin to ActiveState

It is certainly possible to call code in a dll built with one compiler, from code compiled with a different compiler.

For example, calling any of the system modules (which are probably mostly built with one MS C or C++ compiler or other) from programs compiled with Borland's C or Digital Mars C++ works fine. Indeed, so does callng those same system DLLs from programs built with DMD or Haskell or Ocaml or Erlang or Clean or Perl or Ruby.

It depends very much upon how the DLL is built and whether all it's runtime dependancies are added to the DLL (or derived from other DLLs), or not. I agree that it will not always work, and you are much safer sticking with a single compiler.

The biggest danger is that you will get mismatched Perl components. If you attempted to use a module built for Cygwin Perl 5.6.x in conjunction with AS perl 5.8.x, it will almost certainly fail immediately, If both Perl's are the same version, you are less likely to encounter problems.

I wouldn't use such cross-built DLLs for any critical purpose, but as a stop gap measure to trying something out, I might consider it.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
The "good enough" maybe good enough for the now, and perfection maybe unobtainable, but that should not preclude us from striving for perfection, when time, circumstance or desire allow.

Replies are listed 'Best First'.
Re^3: From Cygwin to ActiveState
by planetscape (Chancellor) on Sep 30, 2005 at 12:25 UTC

    Thank you for the clarification. :-)

    planetscape