关闭WinForms应用程序时出现奇怪的错误消息

时间:2010-04-19 16:44:25

标签: c# .net visual-studio debugging com

我们有一个Windows窗体应用程序,它使用一些com组件,例如Web浏览器控件和用于签名板的API。

当应用程序关闭时,有时会显示错误对话框,其中包含以下文本:

“sw:myapp.exe - 应用程序出错”

文本是这样的:当执行以下操作时,指令xyz在地址yxz处导致非法访问:READ。

奇怪的是,即使我在visual studio中激活非托管调试并切换异常,调试器也不会中断。

之后,无法从visual studio重新启动应用程序,因为它表示文件仍在使用,就像应用程序仍在运行一样。 当我尝试将调试器附加到此过程时,它会失败。

有人知道如何调试这种奇怪的行为吗?错误对话框标题中的SW是什么意思?我在我的系统上搜索它,显然没有现有的dll。

1 个答案:

答案 0 :(得分:1)

您可能无法正确卸载COM对象。

var myObj = ISomeCOMObject.MyObject();
myObj.DoStuff();
myObj.Dispose();

//the important line of code that you need
Marshal.ReleaseComObject(myObj);

http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.releasecomobject%28v=VS.100%29.aspx