Jump to content

Error 0cx000007b On Game Launch


Moon1

Recommended Posts

Hello :) I hope it's ok to post about this kind of thing here.

I pre-purchased Shadow of the Tomb Raider on Steam for the early access, and have spent the entire time trying to get it to launch :(  I have been searching extensively for any kind of solution. 
I'm tearing my hair out , and I'm hoping someone can offer some advice.

OS: Windows 7 Professional 64-bit Service Pack 1
Processor: Intel(R) Core(TM) i5-4460S CPU @ 2.90GHz (4 CPUs)
Memory: 8192MB RAM
DirectX Version: DirectX 11
GPU: NVIDIA GeForce GTX 960 4GB

Things I've tried:
1) Reinstalled the game several times
2) Verified game files through Steam library
3) Run as Administrator
4) Run directly from the SOTTR exe  (get error "The application was unable to start correctly 
(0xc000007b) )
5) Update .NET Framework to 4.7.2
6) Verified PC file integrity via sfc / scannow
7) Added any file/folder I found into Avast! exclusions
8) The game is supposed to create a folder in My Documents, but it won't. My Documents is not hidden, or blocked in any way.
9) Install Microsoft Visual C++ 2017 Redistributable
10) Reinstall DirectX - the log showed that I already had the newest versions of the .dlls

11) Ran Chkdsk /f /r - no errors found


Some "solutions"  I'm not sure of:

1)  Install/Replace specific dll files:

  • Some solutions were to replace: xinout1_1.dll; xinput1_2.dll; xinput1_3.dll; xinput1_4.dll; xinput9_1_0.dll - these files are present in System32 and SySWOW64
  • Others suggested: mfc100.dll; mfc100u.dll; msvcp100.dll; msvcr100.dll; msvcr100_clr0400.dl - these files are present in System32 and SySWOW64, as well some Steam game folders.

I have no idea if I need to replace them with 32-bit, or 64-bit; if they should go into System32, SysWOW64, or both. 

  • Delete all files starting with dsdx9 in System32 and SySWOW64 and reinstall DirectX
  • Download d3dcompiler_47.dll and install in System32 and SySWOW64 - this file is not located in these folders, but is present in some Steam game folders.

Messing with dlls is scary. 

2) DependencyWalker:

I don't know how reliable this program is anymore, but I tried it anyway.
When testing the game, I found something very strange that doesn't appear when testing other games. It is showing Skype dll files being associated somehow. (please see *Capture2* attached). 
I only found one person who encountered this. He replaced the x86 dlls with x64 in the Skype folder. I have no idea why these files are showing in the game ddls, and I'm afraid I may mess up my Skype.

3)Uninstall all Visual C++ Redistributables, and reinstall every Visual C++ using an All-In-One installer

4) Install Platform Update for Windows 7(KB2670838) ; install Update for Universal C Runtime (KB2999226) - these are listed in the updates to avoid installing so as not to be upgraded to Windows 10, so I'm unsure.

I've attached my DxDiag ; a screenshot of all the Visual C++ I have installed (*Capture1*); and a screenshot of the game DependencyWalker ("Capture 2")

 

I've read that this error is due to a 32-bit app trying to access a 64-bit dll, or vice versa. I honestly have no clue if this game is 32 or 64, even if I did, I'd still have no idea how to solve this.There are so many "solutions", and I guess everyone's problem is slightly different.

 I'm just so frustrated and confused as to what's wrong. I've had no problems with any other game, except this one.

I really hope someone will be able to help me figure this out. Thank you so much! :)

DxDiag.txt

Capture1.JPG

Capture2.JPG

Edited by Moon1
Link to comment
Share on other sites


From Capture2.jpg, your Steam app is 64-bit and the only copy of the CRT runtimes it can find are the 32-bit files installed with Skype. While updating those files with 64-bit versions should fix the problem for all 64-bit apps, that would break Skype and other 32-bit apps.

> 9) Install Microsoft Visual C++ 2017 Redistributable
Installing the 64-bit version should fix the problem without breaking Skype. Otherwise you will need to uninstall the 32-bit version of Skype and install a 64-bit version.

Link to comment
Share on other sites

Hi jumper! Thank you so much for the reply :)

I knew something wasn't right when I saw those entries lol! It's just so weird that that this particular game is the only one that is showing this. No other game I've tested does, however, when I actually launch any of those games, it doesn't show in Task Manage that they are 32-bit apps.

I certainly don't want to break Skype. Although my version is pretty old, because a) For some reason I can't recall now, I wasn't able to install a newer version, and b) I hate the more recent versions of the app lol! Also, I can't even tell if the Skype installers are 32-bit or 64-bit, when I search for the downloads.

Anyway, I double-checked all the Visual C++ Redistributables I have installed via Add/Remove programs, and it does list that I have both x86 and x64 versions of the Visual C++ 2017 Redistributable. So not sure how to proceed if, in fact, that is the problem.

 

Link to comment
Share on other sites

If you installed the app before the x64 runtimes, the installer must have searched for and (incorrectly) found the x86 runtimes. If so, uninstall then reinstall the app.

Find all locations of both the x86 and x64 runtimes. Search the Registry (especially KnownDlls, App Paths, and PATH) and the app's data files for references to any of those locations.

Load the app into Depends and go to the Option->Module Search Order dialog. Experiment and report findings.

Link to comment
Share on other sites

I have some doubt that the program would be able to find the files in the Skype folder. A program usually has a very limited search path when trying to find files: its specified working directory, c:\windows, c:\windows\system32, and any other path/environment variable specifically set by the developer.

If installing the 64bit version of that redist doesn't solve that issue, you can manually put the correct files into the program's working directory.

Link to comment
Share on other sites

I advise against manual treatment of the symptoms before we have the problem fully diagnosed. I currently suspect Skype added its "phone" directory to the global environment PATH instead of using "App Paths" in the registry. I'm not sure how to view the PATH in Win7, but you can try opening a DOS box and entering path.

Looking at Capture2 again, there are also six missing CORE/SHCORE/APPMODEL files that might be needed for delay-loading. Perhaps a Win7 service pack is also required?

Link to comment
Share on other sites

Hi jumper and Tripredacus, thanks for your replies :)

In regards to those first six files that is shown in "Capture 2"....after some searching, a few sites stated that these have something to do Windows 8 and have no impact on Windows 7. Every app I've run through DependencyWalker shows these files missing, but they aren't impacting the apps' performance at all. DependencyWalker is apparently rather dated and hasn't been maintained in some time, so I'm not sure how reliable it is. However, the fact that it is only this game that is showing the Skype dlls, I think that it would be safe to say that something isn't right.

The screenshot in my original post doesn't show every Skype file, so I've included an updated screenshot of every Skype dll that the game seems to be trying to access. Maybe it might help more than the other one.

I think the "CRT" entries have to do with Universal C Runtime? The entries in the screenshot are 32-bit, so could it be that the game is wanting 64-bit versions? Some solutions for the 0cx000007b error was to install  Platform Update for Windows 7(KB2670838); and/or install Update for Universal C Runtime (KB2999226) . I have no idea if I have these installed. Also, I read here on MSFN that these updates are to be avoided if you don't want to upgrade to Win10? I really don't know.

Then again, the probelm could be something totally unrelated . Ugh I'm so confused lol!

Most of the suggested fixes I've found around the internet was to re-install Visual C++ Redistributable 2015. When I did have this one installed, the game didn't work, and installing 2017 replaced the 2015. Also, it seems there are different builds of the same Visual C++. For example, someone suggested installing 2012. I thought it wouldn't work because I already have that one, but it showed it was a different build. I guess it wouldn't have hurt to let the installation complete, but I didn't know if I should so I cancelled it.

This whole thing is completely mind-boggling, and as you can tell, I'm not that knowledgeable when it comes to this, and I'm just hesitant to go ahead and start replacing dlls or uninstalling all Visual C++ and reinstalling...or anything that might cause the programs that ARE working to suddenly not work.

I know I'm a pain in your rears with my lack of know-how, but I do sincerely appreciate your help guys.

1.jpg

Edited by Moon1
Link to comment
Share on other sites

As Tripredcus and Jumper hinted before, usually the DLL searching path is as follows:

1) the same folder directory where the main .exe is
2) the %PATH%
3) some other place (maybe) 

The exception is when the full path to a given directory containing the .dll is explicitly set *somewhere* (normally a .ini file or the Registry).

What I would do in your case would be to copy to the directory where the .exe is, the .dll that is giving the error (or if more than one, one at the time, in the order that Dependency Walker finds them when tracing) of course the version with the appropriate "bit width".

jaclaz  

Link to comment
Share on other sites

@jaclaz Thanks so much :) I'm hoping I'll be able to find a solution without having to manually install each individually, so any future programs that may need them would find them automatically , but worse case scenario, I will go that route just so I can play this darn game lol!

@jumper Do you mean the PATH environment strings of the currently installed C++ Redistributables, or the skype dll's shown in Depends? Please excuse my ignorance >.>, but would you mind telling me how I would go about doing that?

I uninstalled the game - I can't remember what I was going to try, but if there is anything you recommend  ( such as reinstalling Visual C++, or something) I should do before reinstalling then let me know. Anything to help you guys get to the root of the problem, and closer to a solution.

Thanks again, guys for continuing to help me :)

Link to comment
Share on other sites

How to reach PATH variable?

From https://www.computerhope.com/issues/ch000549.htm

Quote

From the Desktop, right-click the Computer icon and select Properties. If you don't have a Computer icon on your desktop, click the Start button, right-click the Computer option in the Start Menu, and select Properties.

Click the Advanced System Settings link in the left column.

In the System Properties window, click on the Advanced tab, then click the Environment Variables button near the bottom of that tab.

In the Environment Variables window (pictured below), highlight the Path variable in the "System variables" section and click the Edit button. Add or modify the path lines with the paths you want the computer to access. Each different directory is separated with a semicolon as shown below.

Works, I checked. Please, do not change contents of this variable, or you'll break your system :)

 

Link to comment
Share on other sites

Thanks Mcinwwl and jaclaz :)

I opted for the Command prompt method. This is what came up. I hope you guys can make sense of it, because I can't lol!

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\OWNER>SET PATH
Path=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Ora
cle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Int
el\iCLS Client\;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\P
rogram Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\windows\system3
2;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0
\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files\Intel\Intel(R) Man
agement Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine
Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Component
s\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\
Program Files (x86)\Skype\Phone\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

C:\Users\OWNER>

Link to comment
Share on other sites

Good :).

In a human readable form (with ; replaced by CR+LF):

Quote

Path=

C:\Program Files (x86)\Common Files\Oracle\Java\javapath

C:\ProgramData\Oracle\Java\javapath

C:\Program Files (x86)\Intel\iCLS Client\

C:\Program Files\Intel\iCLS Client\

C:\Program Files\Common Files\Microsoft Shared\Windows Live

C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live

C:\windows\system32

C:\windows

C:\windows\System32\Wbem

C:\windows\System32\WindowsPowerShell\v1.0\

C:\Program Files (x86)\Windows Live\Shared

C:\Program Files\Intel\Intel(R) Management Engine Components\DAL

C:\Program Files\Intel\Intel(R) Management EngineComponents\IPT

C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL

C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT

C:\Program Files (x86)\Skype\Phone\

jaclaz

Link to comment
Share on other sites

12 hours ago, Moon1 said:

Most of the suggested fixes I've found around the internet was to re-install Visual C++ Redistributable 2015. When I did have this one installed, the game didn't work, and installing 2017 replaced the 2015. Also, it seems there are different builds of the same Visual C++. For example, someone suggested installing 2012.

If the game itself doesn't say which version to use in a text file in the game folder, then the typical way of knowing which version is needed should be kept in the manifest of the exe. In this case, it would be sottr.exe and you would need a program that can view the manifest on there. If the developers were smart, it should clearly indicate the version of specific runtimes that are required. It is possible to do this simply by opening the .exe in a text editor or hex editor and search for "manifestVersion" although there are other programs available that can show this information in a nicer format. I don't know of a program to recommend, perhaps others know of some.

Link to comment
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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...