2011-12-21 70 views
1

我使用在Windows XP上正常工作的.vbs脚本。迁移到vista 64或windows server 2008,我的脚本完成它的任务,但脚本完成后,cscript.exe崩溃。在vista上执行脚本后cscript.exe崩溃64

我使用位于syswow64中的32位版本的cscript,因为我的脚本使用32位旧com对象。当然,我不能重新编译这些COM对象。

adplus告诉我,访问冲突c0000005在vista 64上完成,而不是在xp上完成。

经过一番搜索,我尝试了注册表黑客,以便使用失败的32位COM对象,我试图禁用失败的DEP。

任何想法?

谢谢。

回答

0

看到崩溃,您可以使用调试器来获取小型转储和调用堆栈和/或确定是否存在导致进程崩溃的特定故障模块。隔离这样的问题后,你会发现这种奇怪行为的原因 - 它不一定是一个脚本宿主,它首先会导致问题。

+0

谢谢,为答案。是的,似乎问题来自根据minidump的ntdll.dll。 – 2011-12-22 10:09:31

+0

@CastorMalin,这意味着一个无效的参数被传递给Win32函数。您需要查看堆栈以查找第一个非Windows DLL。通常这是一个怪罪。 – Ben 2012-01-30 11:40:58

+0

我终于找到了一个注册表黑客(DLL代理),允许我使用64位cscript。现在工作正常。 – 2012-02-07 10:10:30