我正在尝试构建一个包含Lua组件的Windows服务,并链接到Lua的共享库。我正在使用MinGW在Eclipse / CDT中构建代码。它构建得很好,但是当我运行它时,我会得到“Application failed to Initialize Properly (0x80000003). Click OK to terminate
”。
我正在寻找可能发生的事情的线索。 Hello World程序编译并运行正常,因此没有基本的环境问题(我希望!)。顺便说一下,我在XP Home上运行。
更新:
好吧,我已经通过一些猜测想出了发生了什么,并且认为我发布这个是为了其他可能遇到类似问题的人的利益 - 我认为我链接的lua DLL,at at运行时,与我构建的版本不同。这导致应用程序初始化失败我猜。当我把它们变成同一个文件时,事情就开始起作用了。我没有调查为什么这会导致app init失败,但我猜一些符号在不同的地址或什么?或者可能是DLL是用不同的工具链构建的?
答案 0 :(得分:2)
这可能是因为没有权限访问应用程序所需的DLL。您是以管理员或管理员组成员的身份登录的吗?
尝试以管理员身份登录,以查看问题是否消失。这将有助于确定它是否是权限问题,然后您可以进一步探索。
您也可以尝试使用Dependency Walker(depends.exe)查看是否突出显示任何问题。
答案 1 :(得分:1)
此问题的原因是尝试在Windows XP中运行DOS程序或16位程序 在Windows XP中运行DOS程序或16位环境 为此,请转到“开始”,“运行”并键入gpedit.msc 然后去: 用户配置 管理模板 开始菜单和任务栏 然后双击 在“运行”对话框中添加“在单独的内存空间中运行”复选框 选择Enabled,然后单击OK。 如果问题没有解决,我们将不得不禁用Dr Watson,请执行以下操作: 转到“开始” 程式 饰品 系统工具 系统信息 然后去: 工具 沃森博士 或者转到“开始”,“运行”并键入drwtsn32 并禁用: 转储所有线程上下文 和 创建崩溃转储文件 并按: 行
然后重启你的电脑....... 然后你就可以在Windows XP中运行任何游戏或程序运行Dos或16位。