J'ai un problème avec l'application en C#. Lorsque j'essaie d'appeler ShowDialog sur les plantages d'application de l'objet SaveFileDialog. Le code qui provoque le crash est dans le bloc try catch, mais comme il crase l'application, je suis incapable d'obtenir la trace de la pile.Crash SaveFileDialog avec le code d'exception 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);
}
Voici la description d'erreur:
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
nom du module est parfois la formation de failles ntshrui.dll.
Ce code fonctionne correctement pendant des années sur toute autre machine. Il s'est passé sur Windows 2008 R2 avec .Net 2.0 et 4.0. Quel pourrait être le problème?
Si vous exécutez votre application dans le débogueur, où échoue-t-il exactement? –
Sur cette ligne DialogResult ds = sfd.ShowDialog (this); Mais je ne peux pas exécuter dans le débogueur parce que c'est dans le client env. – iz25
'0xc0000005' est une violation d'accès, c'est-à-dire un accès mémoire invalide (natif). Pourrait être vraiment n'importe quoi, même le code pourrait être la cause qui a longtemps terminé l'exécution lorsque vous appelez vos affaires. Mais puisque vous l'obtenez en traitant le shell, il pourrait être une mauvaise extension shell tierce. Vous pouvez essayer de désactiver les extensions shell avec des outils comme [this] (http://www.nirsoft.net/utils/shexview.html) et voir si l'erreur disparaît. –