Missing VCRuntime140_1.dll on Windows 7

When running in Windows 7, I get a complaint about a missing file: VCRuntime140_1.dll

I’m trying to get my application working on older Windows machines. If I understand correctly, I need to switch from using dynamic linking to static runtime library linking to fix this issue?

I tried this but the resulting .EXE file seems to be pretty much identical in size to the one that was linked with dynamic runtime libraries. Am I doing something wrong or will this approach work properly?

Do I need to provide some extra .DLL with my application to make it work properly on older Windows machines? I would highly prefer not to make the end users install some extra .DLLs. I would also prefer not having an installer, but the whole software would be in a single .ZIP file which would contain a ready to go software without requiring any installation at all.

ALSO:
Does the .EXE file work as is on Windows 10 machines without me needing to include any other files/DLLs for the users?

Changing to the statically linked runtime doesn’t necessarily increase the executable size a lot, but should probably increase it a little. Did you test if the statically linked executable actually does work on the target system or not?

Some of my beta testers have that system. I only have Windows 10 so I’m unable to test it personally.

I got information from my beta testers that Windows 7 works perfectly when the software uses static linking. No need to install any support packages from Microsoft or anything.

Just for your information if anyone wants to support older versions of Windows.

Note that it is actually disencouraged to use static runtime linking (see here).

I think that a Visual C++ Redistributable is missing, e.g. runtime libraries that for example provide the implementation of new or delete. If you don’t want to ship an installer (which is actually really easy to do with InnoSetup), maybe you could simply put the appropriate redistributable for your toolchain from here into the zip package?

I think Microsoft eventually fixed this problem.

https://devblogs.microsoft.com/windows-music-dev/effectively-removing-the-fls-slot-allocation-limit-in-windows-10/#:~:text=Fiber%20Local%20Storage%20Slots&text=In%20computer%20science%2C%20everything%20that,most%2C%20128%20FLS%20slots%20allocated.

5 Likes

Interesting, thanks for the heads up!