C#のアプリケーションに問題があります。 SaveFileDialogオブジェクトアプリケーションでShowDialogを呼び出そうとするとアプリケーションがクラッシュします。 クラッシュを引き起こすコードはtry catchブロックにありますが、アプリケーションをクラッシュするのでスタックトレースを取得できません。SaveFileDialogが例外コード0xc0000005でクラッシュする
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です:
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);
}
この
はエラーの説明です。このコードは、他のマシンで長年問題なく動作しています。 .Net 2.0と4.0でWindows 2008 R2に起こります。 何が問題なのでしょうか?
アプリケーションをデバッガで実行すると、正確にどこが失敗するのですか? –
この行でDialogResult ds = sfd.ShowDialog(this);しかし、私はデバッガで実行することはできません原因は、顧客のenvです。 – iz25
「0xc0000005」はアクセス違反、すなわち無効(ネイティブ)メモリアクセスです。実際には何でもかまいません。たとえあなたがあなたのものを呼び出すと、コードが実行を完了した原因になることさえあります。しかし、シェルを扱っている間にそれを取得しているので、悪いサードパーティのシェル拡張である可能性があります。 [this](http://www.nirsoft.net/utils/shexview.html)のようなツールを使ってシェル拡張機能を無効にして、エラーが消えるかどうか確認することができます。 –