https://issues.dlang.org/show_bug.cgi?id=19760

--- Comment #8 from [email protected] ---
> It looks like msvcrt.dll (a different version) is always installed

If it is indeed preinstalled, that's the version from 2002-2003 IIRC. E.g.,
missing a whole lot of C99 math functions (but maybe not much more than the
2010 runtime).

> If you installed the right version of visual studio then you would't run into 
> this issue because it would have installed msvcr100.dll. However, requiring 
> everyone to install visual studio to run programs compiled with "dmd -m64" is 
> not a solution.

You don't need full-blown Visual Studio (let alone the ancient 2010 one), you
need the runtime redistributable of the matching version; for DMD v10 (VS
2010), for LDC v14 (VS 2015).
But what I meant was that anyone compiling a C++ program with Visual Studio's
default settings will also yield a binary depending on the runtime DLLs, just
like DMD. That's of course no problem for the dev himself, but if he is to
redistribute that program.

> To solve this, we need to remove the dependency on msvcr100.dll, and switch 
> to using a static library by default.

Feel free not to trust me, but I had a look at their license, as shipping with
static libs would have made the lives of some people around here much easier.
Or are you suggesting to port the DigitalMars C runtime to 64-bits? Note that
the MinGW runtime is no alternative, it is itself based on the Microsoft DLLs
(yep, the MSVC ones, not just the Windows ones).

A practical solution (well, the only really I can think of) would be checking
the availability of those DLLs in the installer.

--

Reply via email to