2010-10-04 109 views
2

在.NET中使用C#,我试图在Windows脚本主机的实例上调用IActiveScript.Close关闭IActiveScript引擎抛出E_UNEXPECTED异常

由于我目前正在寻找内存泄漏,我发现我没有调用这个Close方法,并试图添加缺少的代码。所以我加了一个叫Close的方法。

不幸的是,当调用Close方法时,将引发一个COM异常,并将E_UNEXPECTED作为错误代码。

在关闭引擎之前查询引擎的脚本状态,它会返回SCRIPTSTATE_CONNECTED

问:

我怎样才能优雅地称之为IActiveScript.Close没有得到抛出的异常?

+1

您确定该物件尚未关闭吗?从文档中我得到了关于Close已经被调用的想法。 – 2010-10-18 17:16:24

+0

谢谢彼得。可能我在我所称的功能的顺序上做了错误的事情。以下答案中的示例按预期工作。 – 2010-10-20 05:57:51

回答

1

(部分)回答我的问题:

我终于成功地建立起一个stand-alone test application,我成功地可以调用IActiveScript.Close方法,也没有内存泄漏。