我在C#中的應用程序出現問題。當我嘗試在SaveFileDialog對象應用程序崩潰時調用ShowDialog。 導致崩潰的代碼是在try catch塊中,但是由於它強制應用程序,我無法獲取堆棧跟蹤。SaveFileDialog崩潰,異常代碼0xc0000005
try
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.AddExtension = true;
sfd.RestoreDirectory = true;
string ext = Path.GetExtension(this.title);
sfd.Filter = "File type (" + ext + ")|*" + ext;
sfd.FileName = Program.NormalizeTitle(this.title);
DialogResult ds = sfd.ShowDialog(this);
}
catch (Exception ex)
{
MessageBox.Show("Exception: " + ex.StackTrace);
}
這是錯誤的描述:
Faulting application name: test.exe, version: 1.0.0.1, time stamp: 0x56585459
Faulting module name: wkscli.dll, version: 6.1.7601.17514, time stamp: 0x4ce795a7
Exception code: 0xc0000005
Fault offset: 0x00001e8f
Faulting process id: 0x%9
Faulting application start time: 0x%10
Faulting application path: %11
Faulting module path: %12
有時錯誤模塊名稱是Ntshrui.dll。
這段代碼在任何其他機器上工作良好。它發生在Windows 2008 R2上.Net 2.0和4.0。 可能是什麼問題?
如果你在調試器中運行你的應用程序,它究竟會失敗嗎? –
在這一行DialogResult ds = sfd.ShowDialog(this);但是我不能在調試器中運行,因爲它在客戶環境中。 – iz25
'0xc0000005'是訪問衝突,即無效(本機)內存訪問。可能真的是任何事情,甚至代碼可能是你調用你的東西時很長時間完成執行的原因。但是,由於您在處理shell時得到它,它可能是一個不好的第三方shell擴展。您可以嘗試使用[this](http://www.nirsoft.net/utils/shexview.html)等工具來停用shell擴展,並查看錯誤是否消失。 –