windows帮助:应用程序未能正确初始化(0x8000003)

windows帮助:应用程序未能正确初始化(0x8000003),windows,Windows,我正在尝试构建一个包含Lua组件的windows服务,并与Lua的共享库建立链接。我正在使用MinGW在Eclipse/CDT中构建代码。它构建得很好,但当我运行它时,我得到“应用程序未能正确初始化(0x8000003)。单击“确定”终止” 我在寻找可能发生的事情的线索。Hello World程序编译和运行良好,因此没有基本的环境问题(我希望如此!)。顺便说一句,我在XP Home上运行 更新: 好的,通过一些猜测,我已经知道了发生了什么,我想我会发布这篇文章,以帮助其他可能遇到类似问题的人——

我正在尝试构建一个包含Lua组件的windows服务,并与Lua的共享库建立链接。我正在使用MinGW在Eclipse/CDT中构建代码。它构建得很好,但当我运行它时,我得到“
应用程序未能正确初始化(0x8000003)。单击“确定”终止

我在寻找可能发生的事情的线索。Hello World程序编译和运行良好,因此没有基本的环境问题(我希望如此!)。顺便说一句,我在XP Home上运行

更新:


好的,通过一些猜测,我已经知道了发生了什么,我想我会发布这篇文章,以帮助其他可能遇到类似问题的人——我认为我在运行时链接到的lua DLL与我使用的版本不同。我想这导致了应用程序初始化失败。当我把它们变成同一个文件时,事情开始起作用了。我还没有研究过为什么这会导致appinit失败,但我猜某个符号位于不同的地址或其他什么地方?或者可能是DLL是使用不同的工具链构建的?

这可能是由于没有访问应用程序所需DLL的权限造成的。您是以管理员或管理员组成员的身份登录的吗

尝试以管理员身份登录,查看问题是否消失。这将有助于确定这是否是权限问题,然后您可以进一步研究它


您也可以尝试使用(depends.exe)查看是否突出显示了任何问题。

此问题的原因是试图在Windows XP中运行DOS程序或16位程序 在windows xp中运行DOS程序或16位环境 要执行此操作,请转到开始,运行并键入gpedit.msc 还有: 用户配置 管理模版 开始菜单和任务栏 然后双击 将“在单独的内存空间中运行”复选框添加到“运行”对话框 选择Enabled,然后选择OK。 如果问题没有解决,我们将不得不禁用Dr Watson,请执行以下操作: 从头开始 程序 配件 系统工具 系统信息 然后转到: 工具 华生医生 或者转到开始,运行并键入drwtsn32 并禁用: 转储所有线程上下文 及 创建崩溃转储文件 并按: 嗯

然后重新启动计算机。。。。。。。
然后,您将能够在Windows xp中运行任何运行Dos或16位的游戏或程序。

在不匹配的DLL上运行应用程序可能会导致各种问题,因为入口点可能不匹配。我可以看出这是如何导致您所看到的问题的,但很高兴您已经解决了它。+1对于dependency walker。这让我在解决这些问题时省去了很多挫折。