我们有一个Windows窗体应用程序,它使用一些com组件,例如Web浏览器控件和用于签名板的API。
当应用程序关闭时,有时会显示错误对话框,其中包含以下文本:
“sw:myapp.exe - 应用程序出错”
文本是这样的:当执行以下操作时,指令xyz在地址yxz处导致非法访问:READ。
奇怪的是,即使我在visual studio中激活非托管调试并切换异常,调试器也不会中断。
之后,无法从visual studio重新启动应用程序,因为它表示文件仍在使用,就像应用程序仍在运行一样。 当我尝试将调试器附加到此过程时,它会失败。
有人知道如何调试这种奇怪的行为吗?错误对话框标题中的SW是什么意思?我在我的系统上搜索它,显然没有现有的dll。
答案 0 :(得分:1)
您可能无法正确卸载COM对象。
var myObj = ISomeCOMObject.MyObject();
myObj.DoStuff();
myObj.Dispose();
//the important line of code that you need
Marshal.ReleaseComObject(myObj);