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); 하지만 고객 환경에 있기 때문에 디버거에서 실행할 수 없습니다. – iz25
'0xc0000005'은 액세스 위반, 즉 잘못된 (기본) 메모리 액세스입니다. 정말 아무것도 될 수 있습니다, 심지어 코드는 당신이 당신의 물건을 부를 때 오랫동안 실행을 완료 한 원인 일 수 있습니다. 그러나 쉘을 다루는 동안 그것을 얻고 있기 때문에, 그것은 나쁜 제 3 자 쉘 확장이 될 수 있습니다. [this] (http://www.nirsoft.net/utils/shexview.html)과 같은 도구를 사용하여 셸 확장을 비활성화하고 오류가 사라지는 지 확인할 수 있습니다. –