"应用程序未能正确初始化(0xc000007b)."

lor*_*tyx 3 c++ runtime-error

当我尝试启动一个用C++编写的程序时,我收到此错误.它在我的其他计算机(XP SP3 32位)上工作正常,但在我的Windows 7 64位版本上没有.当我在程序上运行Dependency Walker时,它告诉我IESHIMS.dll缺失,但是它存在于32位和64位版本的Internet Explorer文件夹中.

谁能帮我这个?

Han*_*ant 18

错误代码为STATUS_INVALID_IMAGE_FORMAT," Mumble未设计为在Windows上运行或包含错误.请尝试使用原始安装介质再次安装程序,或与系统管理员或软件供应商联系以获取支持."

对于64位版本的Windows而言,这有点过时,90%的可能性是您的32位程序试图加载64位DLL.Windows有很多工作可以防止这种情况发生.文件系统虚拟化确保来自c:\ windows\system32的DLL加载重定向到32位DLL的主目录c:\ windows\syswow64.注册表虚拟化可确保COM服务器与COM客户端的位相匹配.

你做的事情绕过了这些反制措施.也许你使用了SetDllDirectory().或者您将DLL复制到与EXE相同的文件夹中.或者您希望系统的PATH环境变量可以帮助您的程序找到正确的DLL.这样的事情,你的问题并不清楚.在Windows事件日志中应该有它的记录(不是100%肯定).如果所有其他方法都失败了,SysInternals的ProcMon实用程序可以显示它尝试加载的文件.