如果应用程序没有正确closures,则不会发布作为Com Server的Excel
我正在使用正在侦听Excel事件的C ++(EXE)中的Excel自动化。 一旦用户打开Excel应用程序,我可以通过AccessibleObjectFromWindow
函数引用_Application指针。 之后 – 我可以连接到IID_IConnectionPointContainer
并获取各种事件。
我的问题如下:如果我的程序崩溃(或者如果我停止debugging器),我无法正确清理_Application
指针,所以即使用户closures程序,Excel.EXE仍在运行。 这是有道理的,因为_Application
引用计数仍然是1。
但是,如果用户再次打开Excel.EXE – >它启动没有任何加载项。 用户需要手动添加色带。 此行为将继续,直到Excel.EXE手动终止。
有没有人遇到过这样的问题? 有没有办法清理COM对象指针后,我的应用程序崩溃?