0xc000007b Error Solution


Two days ago I was working on a C++ project using OpenCV, when suddenly my project couldn’t run anymore!

I just have changed my OpenCV dlls to parallel version and ended up with this Error: "The application was unable to start correctly (0xc000007b). Click OK to close the application." every time I tried to run my application.

0xc000007b-error

After some hours of hard search I found that 0xc000007b error didn’t come from an exception in my code or even OpenCV dlls. I found that the error is just wrong configurations and the solution is easy, so I decided to write this article to show you how you cans solve this error permanently.

The Problem

0xc000007b error comes mainly from mixing up 32bit environment with 64bit one, that is you have an 32bit application that tries to load a 64bit dll.

To see exactly who cause this you must examine your application dependencies carefully.

I used a free portable program to do this: "Dependency Walker". After you download it you can open any PE file (exe, dll, …)

Open your application executable file (in my case "testopencv.exe") with dependency walker, you sould see something like this:

dependency-walker

As You can see, dependency walker shows all dlls my application depends on, and all dlls these dlls depends on and so on…

Now you must check these dlls to see which one is 64 bit? If your application works fine you should see nothing, but when your application throws 0xc000007b error that means you have at least one 64 bit dll in these dlls.

In my case as you see, my application depends on cv2010d.dll which depends on tbb_debug.dll which is 64bit dll (notice the 64 number near its icon). You can see the properties of any dll to find its path, my tbb_debug.dll lies on: "E:\Intel\Compiler\11.154\tbb\intel64\vc9\bin".

The Solution

But why cv2010d.dll links to 64bit version of tbb_debug.dll instead of 32bit one? and how can we change that?

The answer is that most exe or dll have it is dependencies names only not their paths (that is what we called dynamic linking). So finding the real path of these dependencies done in runtime, and in our case that cause the problem.

When I run my application it tries to load cv2010d.dll which tries to load all of its dependencies including tbb_debug.dll. System tries to find tbb_debug.dll 32bit (because my application is 32bit) but when it can’t it tries to find 64bit version and it can, so it tries to load it and here is the error comes from.

To solve this I remove "E:\Intel\Compiler\11.154\tbb\intel64\vc9\bin" from the PATH variable, so when I tries to run my application system can’t find any tbb_debug.dll (neither 32bit nor 64bit version) so it throws a new error now says that tbb_debug.dll is not found.

The last step I made was coping the 32bit version of tbb_debug.dll and but it near my application executable file so now when system tries to load tbb_debug.dll it will find the 32bit version of it (also dependency walker will do that so there isn’t any 64bit dll in my dependencies now) and my application comes back to life again.

About these ads

95 Responses to “0xc000007b Error Solution”

  1. Dan Says:

    0xc000007b error

    Download and install the following to fix 0xc000007b error.

    http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84

    • Madhat Alsoos Says:

      I don’t think it is enough. When error 0xc000007b occurred on my pc, “Microsoft Visual C++ 2005 Redistributable” & “Microsoft Visual C++ 2008 Redistributable” were already installed.
      I am sure that you must have a version of Microsoft Visual C++ Redistributable installed on your pc, to solve 0xc000007b error but that is not enough.

    • Samrid Says:

      Thanks dan. This worked for me!

    • Savio Says:

      Perfeito, resolveu o meu problema.

    • David O' Says:

      What if you already have this but are still getting the error?

    • Nikola Says:

      I did not understand, and nothing still comes out the same error, what’s the problem if someone wants to help me happy would be grateful?

  2. guest Says:

    Dan solution worked for me :)
    Thank you

  3. Cog Says:

    i did what it said and there are no 64bit ddls
    but when i try to open my file it starts but says
    ‘supermeatboy.exe has stopped working’
    can you help?

  4. Dugan Chen's Homepage Says:

    [...] you get the 0xc000007b crash when you run your application on another computer, then you just need to distribute the [...]

  5. oki from ina Says:

    thank’s dude it’s work, very thank you

    regards
    oki

  6. Adi Says:

    I tried to use “Dependency Walker”, i see on left panel … there’s no 64 bit warning, but i still got those error
    pls replied me …. thx Dan

  7. mcormic Says:

    umm where is the path variable

  8. Danilo Pena Says:

    Perfect!

    Just adding, if the error persists, even after putting the .dll in the correct version, then it may be an error code. eg: use imread() of the wrong way, err on the filename.

  9. zhuoliang Says:

    Very nice!

    Thanks!

  10. Toma Says:

    Thanks helped me. I was build my application in x64 (Any CPU), just change it to x86 and works like a charm, THANKS! :)

  11. Roberto Says:

    To me something similar happens, but I think directx’s fault, since the simulator and installed no problem but when you are installing the direcx I get this error:
    Your computer does not have the d3dx9_43.dll, try reinstalling the application.
    No application refers to, I uninstalled the a-10 and I’ve reinstalled a few times, but always I get the same.
    Can anyone tell me how I can fix it?
    Incidentally this happens to me since I format the computer.
    My team is:
    Windows 7
    4Gb Ram
    1TB HD

    • Ivan Schallies Says:

      Thats just a missing dll file. Google for a site where u could download the d3dx9_43 , usually i download my dll files at http://www.dll.com whenever i hit that error. U should be able to find the missing dll there. Download it. It wil probably be a zip file. Unzip it. Then copy and paste the main dll file in this directory –> main drive\windows\system32 copy the dll file into the syStem32 file . And there u go. If u did this right u wont get that error again.

  12. yb kwon Says:

    very thx it was helpful

  13. weish Says:

    THANK YOU! I was getting insane about this… copying the .dll in directorie, works for me

  14. Mateo Says:

    My gpsvc file is running on a x64, however, I cannot delete it or modify it or anything! any help?

  15. anthony soon Says:

    i having this same problem but is during windows start up meaning when i log in, my screen is black and i cant see anything.
    Any solution for my problem?

  16. anthony soon Says:

    at the same time, all my other function is not working meaning all hiving me the error 0xc000007b thus giving no control of anything in my computer. the task manager and the safe mode is also having the same problem

  17. udit Says:

    i really dont know much about computers..i tried to install halo 2 and first it said d3dx9_31.dll is missing..i found the dll and pasted it in the applications folder..then it gave the0xc000007b error..it dosent even begin installation..i tried to run it in compatibility mode also but the same results..pls help..

  18. Download Says:

    Thanks Dan, Work For Me

  19. Su'ana Mompittseh Says:

    I get the 0xc000007b Error when I try to start up Fable- the lost chapters, on my windows 7, 64 bit computer.

    I got the Dependency walker, and it showed some missing dlls, and I put those in, then it showed some different bits, x86 and x64

    The problem I am having, is that the above OP reads that there is an error solution, and I read it again and again, and cannot see any solution in there. There is a description of what happened and what it means in the “solution” but not how to actually change the dll bits or whatever needs to be done.

    Maybe it is that I am not computer programmer, minded, where changing data is not easy for me, maybe it is in code.

    Maybe someone could dumb it down for me.

    • Madhat Alsoos Says:

      In my “solution” I didn’t change “dll bits”. 0xc000007b error occurred because of loading the wrong dll version. What I did is just force the exe to load the 32bit version of dll instead of 64bit version, that is all.

      • Su'ana Mompittseh Says:

        Thanks for replying!
        I didn’t even know if changing dll bits is something that can even be done. I was just trying to sound informed. But what I need to do is force the exe to load 64bit versions on some files that are loading 86bit versions, or so it seems from the dependency walker.
        I don’t know how to do what you said you did. And if I have so many 86bits and so many 64bits, do I need to find 64bit versions of the 86bit versions, or is there a way to just convert them?

      • Madhat Alsoos Says:

        Yes you need to force your exe to load one kind of dlls (if your exe is 64bit then it should load 64bit dlls) and you can’t convert 32bit to 64bit or via-verse you should download or find a new dll from the souce you get the first one.
        The easy way to force the exe to load your dlls is to put them all at the same directory with it and make sure that there is not any other versions of these dlls that your exe can access using the PATH system variable folders.

      • lala Says:

        from where I should remove these red things??
        you said from PATH variable……where is that?
        please answer… thank you

      • Madhat Alsoos Says:

        Right click on your Computer Icon -> Proberties -> Advanced system settings -> Environment Variables

  20. Elias Gerber Says:

    Thanks for your blog! I didnt read all the details, but thanks to this entry I started examining the problem with DependencyWalker. Maybe this helps someone else:

    As I did not copy the correct 32-bit dll to the location of the .exe file created by my project, It loaded the dll from c:\program files\intel-wireless-driver. As I’m using a 64bit os this dll was 64bit, while my application is 32bit. So, copying the 32bit dll to the same dir where my .exe is, solved the problem.

  21. hocu Says:

    thank you very much
    have good works

  22. leo Says:

    You are a hero!

  23. Patrick Lange Says:

    It didn’t work for me Dan. I’m still getting the error :( I don’t know how it’s working for other people.

  24. Hunter Walls Says:

    im having trouble converting all the dlls to either 32 or n64 i have a 64-bit processor and 32 bit but im not sure which is needed for the application to run, i have teamviewer installed if anyone is eligible to assist me

    Mr.Walls

  25. kenny Says:

    i got a HP pc and i cant fine the way to resolve this 0xc000007b and i dont now how to finish this problem. i download 32 bit 64 bit and the emulator everithing and i cant play pliss (HELP ME)

  26. majid Says:

    HI WHERE IS THIS PATH IN WINDOWS I CANT FIND
    \Intel\Compiler\11.154\tbb\intel64\vc9\bin
    THANKS

  27. Mukul Says:

    didn’t understand “I remove “E:\Intel\Compiler\11.154\tbb\intel64\vc9\bin” from the PATH variable”.please reply…

  28. phaselotus Says:

    so….i ran the program and it told me everything was 64 which is the same as my operating system but the exe is in 84 im not really sure what to do next any help would be lovely guys

  29. Rafa Says:

    Thanks a lot! The tool you suggested clearly showed me the culprit of my issue which was driving me crazy for awhile. It was a 64 bit Oracle dll, since I have the 64 bit Server running coexisting with the 32 bit client. A change in the order of the path entries solved it.

  30. Eaglewatch Says:

    Thanks a million,after trying all day finally you opened my eyes, you are a life saver.

  31. ram Says:

    In dependency walker everything except t***.dll is x64…wat shd i do???..where can i get the x64 version of dis dll????….please help i have been looking for 4 days…..

  32. Laura Says:

    Thanks a lot!

  33. Poringcross Says:

    where is path variable?

  34. zelalem edge Says:

    u can easily fix it by downloading the missing .dll file with 32 bit

  35. Vojta Havlicek Says:

    I love you!
    Thanks a lot man, helped.

  36. peter Says:

    Thank`s a lot so that i can pay my new game ‘Wanted’^^

  37. Vinodh Says:

    Thanks a ton Mr Madhat Alsoos!
    I have been at my wits end over this error and your post was the best solution;

  38. Mahmoud Luca Says:

    Setup Any Version of Direct x and it will be ok ;)

  39. saher Says:

    thanx man it works

  40. Rudy K. ALos Jr. Says:

    SIR,
    I AM HAVING AN ERROR TOO ( 0xc000007b ) when i tried to run FIFA12 and NBA2k12 but i pust the missing .dll into it but when i run it again thats where 0xc000007b occur, SIR do i need to download the .dll missing to 32bit my laptop is a WINDOW 7 32 bit..help

  41. sam Says:

    Hello,
    my project is 64 bit so all the dll have to be 64 bit ?

  42. Asif Qaldara Asif Nawaz Says:

    plzzz i also have (0xc000007b its peoblem dll error of mw2 game so plzzz send me link

  43. Ivan Schallies Says:

    Ive been looking for a solution for this error for ages now. Unfortanately i can only try it tommorrow night. For now im just writing the instructions down. Really hoping this wil work!

  44. Tyree Says:

    I wish i could understand this better PLEASE someone tell me exactly what it is I am doing.
    What does he mean by “change path variable?”
    what am i copying and where am i pasting??

  45. N Says:

    Thank you very much. I was looking for a solution for this problem and you’re the first that explaining it very well.

  46. martin Says:

    Thank you very much from czech republic, Problem is solved right now :D

  47. academy Says:

    Windows 7
    Bit is 64
    program is also 64 but getting the same error, should I delete the file windows/sys/win32 from computer

  48. panda_m0nium Says:

    Hey, Im having problems working with and understanding what my dependency walker is telling me. It shows me a few errors like he has but I dont know exactly what I am doing to try and fix them. If anyone would kindly point me in the correct direction to a little more insight into how to read/interpret the error and fix it, that would be awesome, thanks!

  49. Raj Kishor Sinha Says:

    hi, i am instal ugs nx 7.5 in my system. there operating sys is windows 7 home baise with 64 bit. when start ugs nx7.5 then got one massage ” ugraf.exe-Application Error, The application was unable to start correctly (0xc000007b). Click OK to close the application.” please solve this problem.

  50. Mikel Says:

    Verry nice 0xc000007b vyřešen :)

  51. Art Says:

    Raj,
    I am having similar problem with NX 7.5 on windows 8 system. Everything seems to install, but when I try to launch NX I get windows that read “NX component has stooped working.” I ran some kind of compatibility program that comes with windows 8 and it says my ugraf is not compatible. This program tries to fix it but fails to.

    If anyone has a solution to this please help…?

    Thanks,

    ABK

  52. monti Says:

    gande phat gyi meri to

  53. levonidis Says:

    re paidia egw to anoigoo to programma..vazw to arxeio to opoio thl na dw..kai mou ta vgazei ola x64..kai to ena x84…ti prepei na kanw? kai genika den ktlv ti akrivws leei parapano..://

  54. Time_Killer Says:

    dependency walker find msvcr100.dll, ieshims100.dll and ogsarchive-4_0.dll. I can find two dll but i cant find ogsarchive-4
    _0.dll. This dll does not exist anywhere. Please help me.

  55. Ariane Says:

    Man, you saved my day, thank you so much !

  56. Mohan Says:

    Thanks a Msoos…….. you saved my freezing work

  57. Fernando Says:

    I tried out the program and i received the follow result, but i have no ideia how to solve.
    Someone could help me?
    I got error trying to reach the following dlls:
    API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL
    API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL
    API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL
    API-MS-WIN-CORE-SHUTDOWN-L1-1-1.DLL
    EXT-MS-WIN-NTUSER-UICONTEXT-EXT-L1-1-0.DLL
    IESHIMS.DLL

  58. مشکل اجرا بازی Says:

    […] ظاهراً اینجا روشی رو آموزش داده که این خطا بر طرف بشه کلیک نمایید پاسخ با نقل […]

  59. Ivan Says:

    “remove “E:\Intel\Compiler\11.154\tbb\intel64\vc9\bin” from the PATH variable…” What to remove in my case? How to do it – absolutly no idea… insensible words…

  60. fazalrehman Says:

    i have problem this erer in game nat open any salocation

  61. Kash Says:

    My windows is 64 bit, so do I have to look for 32-bit files in the dependecy walker. As of now I’m seeing a millions of 64-bit files there.
    Urgent help required.
    Thanks in advance.

    • Madhat Alsoos Says:

      You have to be sure that all dll is found in dependency walker. If there is a 64 bit version of any dll, its better to connect to it instead of the normal 32 bit version of the same dll (try to minimize 32 bit dlls if your exe is build as 64 bit version).

      • Kash Says:

        Dependency Walker shows a red exclamation on my exe and says “Could not find the section that owns the Export Directory.”
        I’m trying to play Fifa14 and it was running pretty nicely before I reinstalled my windows.
        Please help and thanks for your earlier reply.

  62. Elias Says:

    Thank you soooo MUCH! i have been following other guides on how to fix this error with no success, i have been downloading program that clean your registry and i have even tried reinstalling win7.

  63. gamer-o Says:

    Thanks this realy works I have been searching the hole day but depends fixed this 0xc000007b error thanks again man

  64. rakesh kotian Says:

    thanks dude had searchd a lot for it finally soved

  65. Galih Redha Saputra Says:

    thanks gan….
    im a download a crash file,but application can open :)

  66. jmhoffer Says:

    Hi, I’m trying to follow your instructions but I’m having tremendous problems.

    Just recently, a bunch of programs started get this error for no apparent reason. I used dependency walker and I replaced some missing DLLs, but this didn’t fix the problem.

    The problem that is getting reported by Dependency Walker is that every single last DLL is somehow 64-bit, even though they’re supposed to be 32-bit DLLs sitting in System32. Programs will still not run. I have the distinct impression that there’s something else going on. Any ideas?


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: