Seg3D icon indicating copy to clipboard operation
Seg3D copied to clipboard

Cannot start the application because of partially missing MSVC CRT DLLs on Windows 10 x64

Open Anton-V-K opened this issue 3 years ago • 3 comments

Description

The application fails to start on Windows 10 x64

Steps to Reproduce

  1. Install latest version on a clean Windows 10 64-bit (10.0.18362 Build 18362) without installed updates.
  2. Run the application.

Expected behavior: The application should start.

Actual behavior: The application fails to start because of missing VCRUNTIME140_1.dll and MSVCP140_1.dll.

Here are the system error messages (in Russian):

---------------------------
Seg3D2.exe - Системная ошибка
---------------------------
Не удается продолжить выполнение кода, поскольку система не обнаружила VCRUNTIME140_1.dll.
Для устранения этой проблемы попробуйте переустановить программу. 

---------------------------
Seg3D2.exe - Системная ошибка
---------------------------
Не удается продолжить выполнение кода, поскольку система не обнаружила MSVCP140_1.dll.
Для устранения этой проблемы попробуйте переустановить программу. 

Similar issue(s): May be related to #397

Versions

Application: Seg3D v2.5.1 for Windows 64-bit OS: Windows 10 64-bit (10.0.18362 Build 18362) without installed updates

Anton-V-K avatar Jul 20 '21 23:07 Anton-V-K

Since the rest of MSVC CRT DLLs (namely concrt140.dll, msvcp140.dll, vcruntime140.dll) are already present in the application bin directory, I would try putting the missing ones (VCRUNTIME140_1.dll and MSVCP140_1.dll) into the same location.
If you share the missing DLLs, I can test to verify whether this fixes the issue.

Anton-V-K avatar Jul 20 '21 23:07 Anton-V-K

I will work on fixing the installer, it looks like building with a newer Visual Studio is the problem. In the meantime, just google those DLL names, they can be downloaded and put in the bin folder which should fix it.

dcwhite avatar Jul 21 '21 21:07 dcwhite

Thanks for looking into this. I guess, all DLLs should belong to the same CRT version (14.16.27012), and I doubt it will be easy to find DLLs separately - they are usually deployed as a bunch by vcredist_x64.exe or vcredist_x86.exe. Anyway I looked into directories of VS2017 (I have it installed on one of my PCs), and found (at the location like C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.16.27012\x64\Microsoft.VC141.CRT) following DLLs:

  • concrt140.dll
  • msvcp140.dll
  • msvcp140_1.dll
  • msvcp140_2.dll
  • vccorlib140.dll
  • vcruntime140.dll

It's strange that VCRUNTIME140_1.dll isn't there. Looking at the dependencies of the application, I see that only Qt's DLLs (qwindows.dll, QT5WIDGETS.DLL, QT5GUI.DLL, etc.) are linked against VCRUNTIME140_1.dll, so I guess, the bundled Qt binaries are linked against VS2015's CRT, and the app is linked against VS2017's CRT... well, it looks like a mini "DLL hell" :)

Anton-V-K avatar Jul 21 '21 23:07 Anton-V-K