dug9 - 2024-07-02

Ticket received. Thanks very much Michalis for the detailed problem report and helpful solutions with details and links.
-Doiug


From: tickets@freewrl.p.re.sourceforge.net tickets@freewrl.p.re.sourceforge.net on behalf of Michalis Kamburelis kambi@users.sourceforge.net
Sent: July 1, 2024 12:53 PM
To: Ticket #3: Missing DLLs (msvcp140.dll, likely also vcruntime140.dll) upon installing FreeWRL on fresh Windows 11 installation
Subject: [freewrl:tickets] #3 Missing DLLs (msvcp140.dll, likely also vcruntime140.dll) upon installing FreeWRL on fresh Windows 11 installation


[tickets:#3]https://sourceforge.net/p/freewrl/tickets/3/ Missing DLLs (msvcp140.dll, likely also vcruntime140.dll) upon installing FreeWRL on fresh Windows 11 installation

Status: open
Milestone: 1.0
Created: Mon Jul 01, 2024 06:53 PM UTC by Michalis Kamburelis
Last Updated: Mon Jul 01, 2024 06:53 PM UTC
Owner: nobody
Attachments:

I recently tried FreeWRL on an almost-fresh installation of Windows 11. I installed freeWRL_desktop_x64_670.msi (latest Windows version as of now, from what I can tell, from https://sourceforge.net/projects/freewrl/files/freewrl-win32/6.0/ ).

Upon running it (choosing "freeWRL Launcher 6.7" from Windows menu), I got an error message saying that VCRUNTIME140.dll is missing. Attaching a screenshot (though it's in Polish).

We had similar issues with Castle Game Engine in the past -- some common DLLs are required (directly by application or indirectly by libraries, like OpenAL or FreeType). And it's easy to miss packaging them, because most Windows installations already have them installed system-wide, if you installed lots of other software on the same system already.

  1. My first attempt to workaround it was stupid :) I copied vcruntime140.dll from Castle Game Engine (see https://github.com/castle-engine/castle-engine/tree/master/tools/build-tool/data/external_libraries/x86_64-win64 for 64-bit DLLs), where we distribute some necessary DLLs for Windows along with CGE viewer, editor and so on. I manually copied it to C:\Program Files (x86)\freeWRL\freeWRL.6.7 . This resulted in another error about msvcp140.dll missing. This one I didn't have on hand.

  2. So I did a proper solution, I guess. I installed redistributables from Windows, https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 . I installed https://aka.ms/vs/17/release/vc_redist.x64.exe as I'm on x86_64 Windows. (I also removed my manually-copied vcruntime140.dll from AD 1, hoping that VS redist has all necessary DLLs.)

The 2nd solution worked nicely, now FreeWRL runs without any errors. Both when run from Windows menu (which runs "launcher", with launcher settings, asking me which VRML/X3D file) and when I just run freeWRL.exe from command-line (which opens straight the viewer, without any file open if I didn't specify one on command-line).

Suggestion:

  1. Either add the necessary DLLs (it seems msvcp140.dll and vcruntime140.dll ) to the distributed FreeWRL, to make it work out-of-the-box.

  2. Or, maybe for now, point people to install https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 . I'd suggest to put it in "README_win32downloads.txt" seen under downloads on https://sourceforge.net/projects/freewrl/files/freewrl-win32/6.0/ , that's where I'd look for this information first.

If you're looking for ways to test it, the approach I used in Castle Game Engine to test behavior on "fresh Windows" was to use Windows virtual machine images in VirtualBox. Microsoft provides helpful images, see https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/ , https://superuser.com/questions/961322/find-a-windows-10-or-11-iso-to-install-it-in-a-virtual-machine .


Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/freewrl/tickets/3/

To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

 

Related

Tickets: #3