Brethren,

I need a help with a new facet of windows dll hell I recently discovered when I started to compile my own dlls from CPAN. The problem is that newer windows build mechanism ( MSVC Express 8.0 ) links newly created dll with MSVCR80.DLL, and not with MSVCRT.DLL as it was in the older days. And this creates a whole new set of problems discussed everywhere, namely when an executable (in my case, perl.exe) needs to have a special perl.exe.manifest to work properly with MSVCR80, -- which doesn't not work when binaries are distributed, for reasons unknown (more specifically, "perl -MWin32" isn't runnable when the manifest is present, and displays the cursed R6034 error when it is).

I looked inside perl.exe that comes from ActiveState and found that there's no string MSVCR80, but MSVCRT; however, I cannot find a way to build my DLLs so they would also refer to MSVCRT, they always refer to MSVCR80 when I build them. Probably I'm going in the wrong direction, but I thought if I could build my DLLs the way ActiveState's perl.exe is built, the problem will go away.

My question is twofold: does anyone know how to link a binary with MSVCRT using MSVC Express 8.0? I suspect if that's impossible, ActiveState folks might just use an older MSVC version, v6 for example. If that's so, then there's a problem, because MS warns about problems with applications that are linked with different versions of CRT library.

OTOH If I'm indeed going in the wrong direction, and there's a way to easily distribute custom-built DLLs of CPAN modules, how then one does so, and makes sure that they are runnable on all kinds of windows with all kinds of service packs with and without MSVCR80*DLL installed? I definitely cannot try myself all these combination, nor I want to, so I hope there's an easy way out. Thanks.


In reply to win32: distributing dll hell by dk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.