“The application failed to initialize properly (0xc000007b).”

懵懂的女人 提交于 2019-12-31 01:45:07

问题


I get this error when i try to start a program that I've made in C++. It works fine on my other computer (XP SP3 32bit) but not on my windows 7 64 bit version. When I run Dependency Walker on the program, it tells me that IESHIMS.dll is missing, however it's there in the Internet Explorer folder of both 32 and 64 bit version..

Can anyone help me with this?


回答1:


The error code is STATUS_INVALID_IMAGE_FORMAT, "Mumble is either not designed to run on Windows or it contains an error. Try installing the program again using the original installation media or contact your system administrator or the software vendor for support."

Which is a bit outdated perhaps for the 64-bit version of Windows, the 90% odds are that your 32-bit program is trying to load a 64-bit DLL. There's a lot that Windows does to prevent that from ever happening. File system virtualization ensures that DLL loads from c:\windows\system32 are redirected to c:\windows\syswow64, home of the 32-bit DLLs. Registry virtualization ensures that COM servers are matched with the bit-ness of the COM client.

There's something you do that bypasses these counter-measures. Maybe you used SetDllDirectory(). Or you copied DLLs to the same folder as your EXE. Or you are hoping that the system's PATH environment variable helps your program find the right DLL. Something like that, it isn't otherwise clear from your question. There ought to be a record of it in the Windows event log (not 100% sure). If all else fails, SysInternals' ProcMon utility can show you what file it is trying to load.



来源:https://stackoverflow.com/questions/3378616/the-application-failed-to-initialize-properly-0xc000007b

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!