Jump to content
  • Advertisement
Sign in to follow this  
suliman

Users report missing file (ucrtbased.dll). How come?

Recommended Posts

Hi
My game runs fine for me obviously (compiled and run at win 10, 64bits). It uses directx 9.

Some users report they cannot run the exe (there is no installation, just unpack the game folder and run the exe). They get a systemerror which tells them that the game can't be started because ucrtbased.dll is missing. They are running win 8.1 (64 bits) with directx 11 installed.

Any idea what this is and how it can be solved? When googling it (ucrtbased.dll) I only find stuff about visual studio, but why would running an exe be connected to this? (or is it even?)

The game can be found here (https://ehgames.itch.io/plunder-horizon) but maybe this problem is well known?

Share this post


Link to post
Share on other sites
Advertisement

My game was compiled and uploaded in debug build. Also the game engine it uses was built in debug (but this has never been a problem before so Im confused). Would it work had it been in release mode? (and does both my project and underlying libraries need to be in release mode?).

The linked thread suggests I can include "ucrtbased.dll" in my exe-folder, is this a stupid way to solve this? Would the user need different files depending if the user has 32 or 64 bit version of windows? It seems silly to force the user to mess with the files...
(and is it only needed for win 7/8, not win 10?). And would this not work anymore on win xp? (which is as far back as I care to offer compatability).

Thank you for your help!

Edited by suliman

Share this post


Link to post
Share on other sites
6 hours ago, suliman said:

and does both my project and underlying libraries need to be in release mode?

Yes, all the libraries need to be compiled the same way.  In your case 64bit debug, but preferred would be release obviously.  Also, debug releases are very slow to run, so if this is an official release you're being cruel to your end users :)

Share this post


Link to post
Share on other sites

The problem with deploying debug builds is, as already mentioned, you have to match all compilation units to debug. 

And usually regular users don't have debug libraries installed. It may work if you provide the debug dlls with your executable, but not in every case.

I'd rather avoid doing that.

Share this post


Link to post
Share on other sites

1. Ok so in release mode the win 8 users should have the needed file (dll) already? My game now forced them to use the debug version of that file which is not commonly available in win 8? I'll try that.

2. I build my games in 32 bit mode. I use 64 bit for my development but i thought this gives better backwards-compatability. 32 can be run in both 32 and 64 windows but 64 bit can only be run in 64 windows. Isn't this correct?

(ps. The debug version is only slightly slower, and still very fast, I get 800 fps in release and 750 fps in debug so I never bothered checking these things:) but I see now there is other complications)

Edited by suliman

Share this post


Link to post
Share on other sites

There also may be legal ramifications from releasing debug .dlls, I do not know what Microsoft's rules are on releasing .dlls as in a lot of cases you're not allowed to include them with downloads but have to include the installer like back in the DirectX days.  So unless it's to friends/family I would not recommend packaging any .dlls with your release without checking the licensing first.

You should be using available information to make your decisions about 32/64 and what OS's to support.  https://store.steampowered.com/hwsurvey  60% of users of Steam are on 64bit Windows 10 (and over 93% are using a 64bit Windows OS in general, either Windows 7.1/8.0/8.1 or 10).  Last data I seen about 88% of PC users were on 64bit OS's.  Why not release both and let users pick which one they want to use?

Share this post


Link to post
Share on other sites

The user reports that the release version of it works without sending any loose DLLs so this seems what I need to (and should) do :)

Thank you all for the explanations!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!