windows 帮助:应用程序无法正确初始化 (0x80000003)
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/567897/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
windows help: Application failed to Initialize Properly (0x80000003)
提问by tiger
I am trying to build a windows service that includes a Lua component, and links with Lua's shared libraries. I am building the code in Eclipse/CDT with MinGW. It builds fine, but when I run it, I get "Application failed to Initialize Properly (0x80000003). Click OK to terminate
".
我正在尝试构建一个包含 Lua 组件的 Windows 服务,并链接到 Lua 的共享库。我正在使用 MinGW 在 Eclipse/CDT 中构建代码。它构建得很好,但是当我运行它时,我得到“ Application failed to Initialize Properly (0x80000003). Click OK to terminate
”。
I am looking for clues as to what might be going on. A Hello World program compiles and runs fine, so there are no basic environment issues (I hope!). BTW, I am running on XP Home.
我正在寻找可能会发生什么的线索。Hello World 程序编译并运行良好,所以没有基本的环境问题(我希望!)。顺便说一句,我在 XP Home 上运行。
Update:
更新:
OK, I have figured out, by some guesswork, what was going on, and thought I'd post this for the benefit of others who might run into a similar problem - I think the lua DLL I was linking to, at runtime, was a different version than the one I built with. This caused the app initialization to fail I guess. When I made them to be the same file, things started working. I have not looked into why this would cause app init to fail, but I guess some symbol being at a different address or something? Or could it be that the DLLs were built with different tool chains?
好的,我已经通过一些猜测弄清楚了发生了什么,并认为我会发布这个以供其他可能遇到类似问题的人受益 - 我认为我在运行时链接到的 lua DLL 是与我构建的版本不同的版本。我猜这导致应用程序初始化失败。当我将它们设为同一个文件时,事情就开始起作用了。我还没有研究为什么这会导致 app init 失败,但我猜某个符号在不同的地址或其他什么地方?或者 DLL 是用不同的工具链构建的吗?
回答by LeopardSkinPillBoxHat
This might be caused by not having permissions to access the DLLs required by the application. Are you logged in as an Administrator or member of the Administrator group?
这可能是由于没有权限访问应用程序所需的 DLL。您是以管理员身份登录还是以管理员组成员身份登录?
Try logging in as Administrator to see if the problem goes away. This will help determine if it's a permissions issue, and then you can explore that further.
尝试以管理员身份登录以查看问题是否消失。这将有助于确定这是否是权限问题,然后您可以进一步探索。
You could also try using the Dependency Walker(depends.exe) to see if this highlights any problems.
您还可以尝试使用Dependency Walker(depends.exe) 来查看这是否突出显示了任何问题。
回答by tiger
Cause of this problem is to try to run DOS programs, or 16-bit programs in Windows XP To run DOS programs, or 16-bit environment in windows xp To do so go to Start , Run and type gpedit.msc And there go to: User Configuration Administrative Templates Start Menu and Taskbar And double-click on Add "Run in Separate Memory Space" check box to Run dialog box Select Enabled and then OK. If the problem is not resolved, we will have to disable the Dr Watson , Do the following: Go to the Start Programs Accessories System Tools System Information Then go to: Tools Dr Watson Or go to Start , Run and type drwtsn32 And disable: Dump All Thread Contexts And Create Crash Dump File And press: OK
这个问题的原因是尝试运行 DOS 程序,或 Windows XP 中的 16 位程序要运行 DOS 程序,或 Windows xp 中的 16 位环境为此,请转到开始,运行并键入 gpedit.msc 然后转到:用户配置管理模板开始菜单和任务栏并双击添加“在单独的内存空间中运行”复选框到运行对话框选择启用,然后确定。如果问题没有解决,我们将不得不禁用 Dr Watson ,执行以下操作:转到开始程序附件系统工具系统信息然后转到:工具 Dr Watson 或转到开始,运行并键入 drwtsn32 并禁用:转储所有线程上下文并创建崩溃转储文件并按:确定
And then restart your computer ....... And then you will be able to run any game or program is running Dos or 16-bit, within Windows xp.
然后重启你的电脑....... 然后你就可以在Windows xp 中运行任何运行Dos 或16 位的游戏或程序了。