Unable to load dll libglorycolx2010.dll. The application has failed to start because its side by side configuration is incorrect. HRESULT: 0x800736B1 - c++

I am using a third party dll, libglorycolx2010.dll in my C++ project. When i try to run the project i get the above error.
Many sources online suggested that i install Microsoft Visual C++ Distributable package which i have done. The problem is, i am not sure which dependencies are required by the dll. In that case i installed all versions Microsoft Visual C++ Distributable packages (2005,2008,2010,2012) X86 bit, but the problem still persists. I am using DllImport to load the library and i am using Visual Studio 2012 Professional.
I also tried to register the dll using regsvr32 but still got the same exact error. Kindly someone help.

Use dumpbin command using visual studio command prompt to analyze the libglorycolx2010.dll. This will analyze the dll and display all the dependencies of the dll.
Go to system32 folder and search for all the dependencies that were displayed using the dumpbin command.
There is a likelihood some may be missing. Go to https://www.dll-files.com/ and search for the missing dll and download it, then copy it to system32 folder.
Try running the Project again.

Usually when I get this error, it means that I am trying to load a 32bit dll into a 64bit application, or a 64bit dll into a 32bit application.

Related

Missing .dll in different Visual Studio versions

I recently came up with an issue. I had a project created on visual studio 2015, using allegro5 library which executed on Debug and Release mode correctly.
When I changed visual studio versions though and started using 2019 version (In the mean time I had to format my PC and re-installed only VS19) and loaded the project, the execution had a missing msvc110d.dll error shown up.
I tried to find a way in order for my project to be "upgraded" and instead of looking into the old version of msvc to try and look up the newer version, but couldn't find anything.
So is there a way for me to change some settings in order for my project to expect newer versions of msvc, or do I have to create a new project and copy paste all the configurations and files/assets inside that new project?
Thank you all
P.S I know that the error can be resolved If I get the .dll file inside that directory, but that is bad practice for sure. Also could you give me a tip on how to setup a project correctly in order to prevent those kind of issues in the future?
I think you need to find the VS2015 redistributable on Google and install it on your machine. That should solve it.
Windows dynamic library files are installed under c:\windows\system32 directory. A 32 bit dll file in a 64 bit windows can be found under c:\windows\syswow64. When your VC++ developed application searches for the dll it first checks in the application folder and then the system folder. If it is not found in these locations, a "missing dll file" error will be shown.
Normally, installing the right VC++ redistributable does the trick. But at times the mismatch persist as the sdk you're using is not in conformity with the system dll. You shouldn't replace the existing dll in the system directory manually with a downloaded( download only from www.microsoft.com) one as other installed software may also failed in the process.
In such worse case scenario, you can however directly copy the downloaded dll files in your application folder itself and distribute along your software so that it runs on a remote host too. Normally these compatible dll files, for both debug and release versions, are also available in your VC++ sdk directory which can be copied for a perfect match.

msvcr120d Is missing

I've been trying to compile on opencv program in C++ and I have randomly started getting this error message.
Using dependency walker I can see that this dll is needed by my program but is net being found.
I used Xsearch to search my computer for the dll but it is not found.
I have downloaded a copies of the dlls (both the release and debgu versions) and placed them in the same directory as my application.
I have also tried placing them in the C:\windows\System32 folder and using regsvr32 to register them.
Regsvr32 gives me another error message
I've also tried installing the redistributable packages for visual studio with no effect.
I seem to be running out of options :(
Doh
Figured it out
Was using msvcr120 instead of msvcp120

My Qt5 executable does not run outside of Visual Studio 2010

I have done a big project with Qt5 and visual Studio 2010. Everything is well inside of visual studio using the run button.
But my goal is of course to release it to other persons, without visual studio.
My problem is: I can't get the .exe run outside of visual studio. I was asked for several dll's at first, I found them all in the Qt5 bin folder.
But know I got rid of those messages, when I wan't to open my exe, nothing happens.
Just nothing.....
I cannot even find my exe in the windows task manager.
Does someone here know an answer to that issue?
There are dll files that are loaded during runtime and don't give you any error, warning or whatsoever when not present (also totally transparent to dependency walker). Such is the platforms\qwindows.dll - note that it must be in a platforms\ subfolder relative to the executable. You might also be missing libEGL.dll and libGLESv2.dll.
Dependency Walker is not very useful in this case as it shows very strange dll files missing: API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL etc.
You can use Qt5.x cmd prompt ( 5.x is the version that you are using) and run windeployqt.exe from your build directory. It will automatically find and copy all necessary dll files to your output directory.

how to add statically link run-time assemblies?

i am trying to run an exe file on another computer that doesn't have visual studios installed.
When i try run the file i get the error : This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.
I tried searching for the answer and i lot of websites mention static link run-time assemblies
but i have no idea how to add them into my project.
(Program is in visual studios 2008 in c++ console)
It is hard to tell exactly what libraries are missing. Here are some ideas.
You are deploying a debug version. As non-development computers typically don't have debug libraries deployed (mfc*xxxd.dll & co.) your app cannot start. You should deploy the release version.
You app is built with newer version of C runtime or MFC which is not available on target machine. You should install Visual C++ redistributable package for your version of VS / development tools.
If you can't install this, you should statically link runtime/MFC libraries to your app. Depending on your version of VS, you need to go to project settings and check correct version of runtime libs (static vs dynamic)
If still there are issues, you should check exactly which dlls are missing by using a tool like Dependency Walker on the target machine (actually this should always be the first thing you should do instead of guessing). It will show you which dlls are missing. If everything seems OK, then you are missing some delay-loaded or COM dll - this are not loaded on startup but on demand. You can use DependencyWalker to profile the startup of the app to see exactly what's missing.

After in VS2010 include other library, app fail on start with error 0xC000007b

I have a problem, downloaded curl developemnt package but if i
add in my visual studio .lib file form this program fail with
0xC000007b on startup.
I trying download all complete source in this i can download simple vs6
project but without errors i convert it to visual studio 2010, i compile
this solution normally, libcurl with curl.exe working good but if i try
add to my project fresh compiled static libcurl library or libcurl dynamic
library i have this problem and i don't have ideas to debug it.
Anyone can help me?
That's STATUS_INVALID_IMAGE_FORMAT, Windows isn't happy about the DLL it needs to load. That's almost always caused by trying to load a 32-bit DLL in a 64-bit program. Or a 64-bit in a 32-bit program. If you converted this VB6 code to VB.NET then you probably need to force it to run in 32-bit mode. Project + Properties, Compile tab, scroll down, Advanced Compile Options, Target CPU = x86.
Install Microsoft Visual C++ 2010 Redistributable Package (x64) or (x86) depending on architecture of your computer.
It worked for me.