I just used parallel version of OpenCV, DLLs have changed and I ended up with this error : "Application Error (0xc000007b) click OK to close the application it was unable to Start correctly. " Every time I tried to run my application I found the same pop up box.
Also See :- How to Turn Off Ads in Smart Phone Apps
After a few hours of searching I hardly Found 0xc000007b error Solution. I even found that it was not an exception in OpenCV DLLs . I found the error that is just wrong configuration and found easy solution , so I permanently resolved the error and decide to write post on this particular 0xc000007b Error.
Now The Problem :-
By Mixing up
the 64 -bit with 32- bit environment will Cause 0xc000007b error, that
you might had tried to load a 64- bit DLL with the 32- bit application .
This look really carefully you will examine your application dependencies .
" Dependency Walker ": it is a free portable program used . After you download it , you can open any PE file (EXE, DLL, ...)
Open your application's .exe file with Dependency Walker Program (in my case its "testopencv.exe") opened , you see something like this :
This look really carefully you will examine your application dependencies .
" Dependency Walker ": it is a free portable program used . After you download it , you can open any PE file (EXE, DLL, ...)
Open your application's .exe file with Dependency Walker Program (in my case its "testopencv.exe") opened , you see something like this :
As you can
see , Dependency Walker has showed all DLLs my application and when you
will run it, it will displays your application's DLL Files and DLL
depends on and so on.
Now you have
64 -bit to see which one should check these DLLs ? If your application
works properly , you should see nothing. but if you application has
0xc000007b Error then your application throws an error that your
application has one of 64 bit DLL file .
Also See :- How to Hack Wifi Password in 2 Minutes
Now look
into the Image above as you can see in my case my application runs on
cv2010d.dll and which depends on tbb_debug.dll which is 64 bit dll and
shown the NO. 64 Mark in the image . You can view the properties of any
dll to find the path . that is im my case tbb_debug.dll lies on " E:
Intel \ compiler \ \ 11.154 \ TBB \ intel64 \ VC9 \ bin ".
What Is Solution ?
But why tbb_debug.dll 32 bit to 64 bit version cv2010d.dll link instead ? How can we change?
Answer The exe or dll it ( what we called dynamic linking ) has not been the path dependence. So that is causing the problem in time to see the real way to find these dependencies , and in our case .
I run my
application when it tries to load all of its dependencies , including
tbb_debug.dll the cv2010d.dll tries to load . System ( because your
application is 32- bit ) tbb_debug.dll 32 -bit tries to find , but it
seems the 64- bit version and tries it can not , then it tries to load
it and here comes the error .
To solve
this I remove the " E : Intel \ compiler \ \ 11.154 \ TBB \ intel64 \
VC9 \ bin " to the path variable , then my application system ( can not
find anyone tries to run when tbb_debug.dll neither the 32 -bit version
or 64 -bit ), it throws a new error that says it did not tbb_debug.dll .
dependence was now in my 64 bit dll dependency and its application comes back to life again.
Did you faced the same error and did you solved it with any other method/way. Do let me know via comments !
0 Comments