That error for distributing c++ based ".exe" files

closed account (367kGNh0)
I am sure you're aware of the "MSVCR140.dll"/"MSVCR110.dll"/"MSVCR100.dll is missing" error. I ask, is there one single download one can make to remove all three. I need this to list the right prerequisite for my cocos2d-x game that was made is VS17. I got VS2010 AND VS2012 AND VS2015 c++ redistributables on my testing laptop to remove the error message for my game, would getting the VS2017 redistributables alone have solved it straight away?
No, you must link against the correct redistributable — the one that your application was compiled against.

Technically, Microsoft permits you to redistribute the redistributables yourself. Most people don’t, because they are fairly large, and a simple link to Microsoft’s site will suffice.

If you write a nice installer (using something like Inno Setup|http://www.jrsoftware.org/isinfo.php) https://stackoverflow.com/questions/6887428/inno-setup-install-file-from-internet
you can check whether they are installed as part of the installation process and ask the user if they want to install from the internet if not.

From your website where the game is found, you can also just add on the downloads page links to both your executable and the Microsoft redistributables site.

Lots of options. Good luck!
closed account (367kGNh0)
How do i find out which one it was compiled against... I JUST coded the game in vs2017, oblivious to the fact this would occur
Anything you compile with VS2017 will need the VS2017 redistributables...

For older stuff where you are not sure, you need a program to look at the PE32 dependencies. (Dependency Walker|http://www.dependencywalker.com) is a good one.
It's also possible that you'd need earlier versions if you use other DLLs that were compiled with earlier versions of VS, if that wasn't clear.

For example, even when developing in Visual Studio 2017, if you link against some SQL packages that only provide version 14.x. SQL-related DLLs, you'll most likely need to still install the 2015 redist packages.

Also, Dependency Walker is OK but an issue with it is that it can give false negatives (false "you're missing this"). See: https://stackoverflow.com/questions/36240215/dependency-walker-missing-dlls

I've used https://github.com/lucasg/Dependencies (which was suggested from the SO link).

Dependency hell is a fun time.
Last edited on
Heh, nice one. I’m gonna have to add that to my list of tools.

I typically just use an old utility called pedump that tends to crash with 64-bit executables, along with less (and grep) to look through the import table(s) at the command prompt. LOL.
closed account (367kGNh0)
The thing is, I compiled the game on another laptop by downloading all 2015, 2012 and 2010 redistributables (I didn't use the redistributable 2017 yet is still ran, why is this? does the vs2017 have all the three combined?)
Last edited on
closed account (E0p9LyTq)
If you used VS2017 to compile the program, and all of its parts, it has the 2017 DLLs (and redistributables) already available. They were installed when you installed the C++ & Windows SDK options.
Last edited on
Topic archived. No new replies allowed.