在.NET里使用老的COM组件,也就是非.NET COM,真是让人经常性一头雾水!!!写好的程序,可能头回运行一切OK,可是,多让它跑几遍就莫名其妙起来,异常都是怪怪地。不得不寻思着找个解决的办法了。
GOOGLE一下,看到一位朋友的帖子里提到解决办法。“在.NET中,当调用unmanaged COM组件的时候,它实际上是间接地通过RCW(Runtime Callalbe Wrapper)进行的,所以,我们在调用的时候,要遵循一些规范。对于从unmanaged COM组件返回的对象,我们要对其调用System.Runtime.InteropServices.Marshal.ReleaseComObject()方法并将其设为null,才能将其正确释放,并保证其正常运作。特别是,对于一些隐含返回的对象,也要这样调用。”,我也觉得.NET的LJ回收机制是不是要改一下下了,否则,要让俺们多敲忒多次键盘了吧!!!
我大不喜欢看MSDN里文绉绉的技术文档,这次看来还是要去受下罪了。不知道.NET 2.0在这方面做地怎么样?