2011-10-14 37 views
5

我已经创建了一个名为code_2的AHK脚本,将其编译并放入我的启动文件夹中,以便每次打开计算机时都会自动开始运行。什么是“未知软件异常(0xc00000fd)”错误以及如何避免它?

该脚本正在检查某个网站的新更新,并且每当检测到网站上的更新时,它都会使用UrlDownloadToFile下载这些更新。

起初剧本似乎正常工作,但最近我开始我的剧本后,接收从我的电脑下面的消息已约15分钟运行:

C:\ Documents和Settings \管理员\ 「开始」功能表\程式集\启动\ code_2.exe: code_2.exe - 应用程式错误

应用程式发生例外未知的软件异常(0xc00000fd)于位置0x7c92eddc

请按[确定]。终止程式

请按[取消]进行程式侦错

任何知道这个消息是怎么一回事? (对不起,这里的中国人,但我想如果你知道这个消息的号码,你就熟悉这些内容)。

不管怎么说,这是该消息由谷歌做的翻译翻译:

C:\的Documents and Settings \ Administrator的\ “开始” 菜单\程序 \启动\ code_2.exe:code_2.exe - 应用程序错误

应用程序在0x7c92eddc位置发生异常未知软件异常 (0xc00000fd)。

按[确定]要终止程序,按[取消]编程 调试

回答

15

我相信0xc00000fd是一个堆栈溢出异常(http://support.microsoft.com/kb/315937) 。如果没有看到你的脚本,很难确定哪里出了问题,但这种情况通常是由于递归太深造成的。我会检查你的脚本是否有任何递归函数,并确保它们在达到太大深度之前退出。

这可能是你实际上分配太多的堆栈。我对AHK并不熟悉,但编译器也可能在堆栈上分配大量数据(可能是本地变量)。如果你定义了大量的(或者大量的)局部变量,这可能会发生。

堆栈/内存也有可能被破坏,尽管这在使用脚本语言时似乎不太可能。从脚本语言访问本地API时可能更有可能,具体取决于如何完成。

我在这里建议的最后一种可能性是,你调用了一些API并导致它分配了很多堆栈空间,可能是通过传递错误的参数。再次,不知道更多的细节(尤其是它遇到异常时的情况),很难说清楚。

我可以考虑一些其他的原因,但他们更不可能。

+1

谢谢!我认为诅咒太深是我的问题。 – brilliant

相关问题