2011-04-14 6 views
1

J'ai un problème étrange que je n'avais jamais vu auparavant. Je peux ouvrir un OpenFileDialog dans Windows 7 sans aucun problème. Toutefois, lorsque j'essaie mon application sur Windows XP, appeler le OpenFileDialog.ShowDialog() bloque immédiatement l'application. Il disparaît juste! Lors de l'exécution à partir du débogueur, je ne reçois aucune exception non gérée. Si j'enveloppe le code dans un bloc try/catch, rien ne sera attrapé. J'ai également vérifié toutes les exceptions levées dans Debug -> Exceptions, mais rien n'apparaît. Je vais essayer quelques-unes des autres suggestions dans les réponses ci-dessous et rendra compte.OpenFileDialog se bloque sous Windows XP, mais pas Windows 7

Est-ce que quelqu'un sait comment résoudre ce problème? J'ai trouvé un post about something similar, mais c'était le problème inverse. Je vais essayer de peaufiner les paramètres du bureau pour voir si cela est lié à cela, mais je suis douteux.

EDIT - Comme une vérification de santé mentale, j'ai écrit une application de test WPF qui affiche un OpenFileDialog directement via la fenêtre principale ainsi qu'un autre Window qui peut être affiché par la fenêtre principale. Cela fonctionne parfaitement sous Windows XP. Alors maintenant je suis vraiment confus. J'ai vérifié que je ne fais pas quelque chose de stupide comme essayer d'afficher la boîte de dialogue d'un thread de travail. Le OpenFileDialog s'affiche brièvement, puis disparaît avec l'application.

EDIT - Je vais essayer de reproduire ce problème sur un autre ordinateur XP. Pour l'instant, je vais essayer le mode Windows XP et nous verrons ce qui se passe.

+0

Marquer ma propre question en tant que duplicata possible de http: // stackoverflow.com/questions/3550030/c-wpf-openfiledialog-causer-accident-dans-xp-non-dans-vista – Dave

+0

Peut-être pas un doublon après tout. J'ai vérifié l'ordinateur de XP et il a à peu près toutes les versions de .NET Framework installées. – Dave

Répondre

0

Voyez-vous des exceptions "Première chance" dans la sortie? Des entrées dans le journal des événements? Le chemin par défaut que vous utilisez existe-t-il sur la machine XP?

Essayez d'ajouter un gestionnaire à l'UnhandledException de domaine App

Est-ce que le même se produire lorsque vous utilisez une nouvelle marque, le stock FileOpenDialog sans tweaks? Qu'en est-il d'une nouvelle application qui ne fait que montrer une boîte de dialogue ouverte?

+0

Ah, je vais regarder le chemin par défaut - excellente suggestion! – Dave

+0

Vérifié existe - toujours se bloque. – Dave

+0

J'ai vérifié eventvwr et il n'y a rien dans ses logs ... – Dave

0

Voir Galet's post


Je ne peux pas vous dire exactement ce que le problème est, mais voici ce que vous pouvez faire pour obtenir un idée de ce qui se passe réellement. Je suppose que vous utilisez VS2008 ou 2005.

1.Allumez pour libérer le mode 2.Go à Debug \ Exceptions, et cochez toutes les « exceptions » Jeté, comme illustré ci-dessous: http://vvcap.net/db/JbWS_tzy2IpBoI7R7amm.htp 3.Run exécutable dans le débogueur, ignorer les avertissements de VS qu'il n'y a pas d'information de débogage Il semble qu'il y ait une exception win32 pendant l'exécution, mais de cette façon ou d'une autre, vous obtiendrez un ou plusieurs messages du débogueur expliquant quel genre d'exception s'est produit et où. EDIT: Une chose que j'ai oublié de mentionner est que le débogage non géré doit également être activé, comme ici (lorsque vous lancez le programme directement depuis IDE) ou ici (lorsque vous connectez à une procédure en cours d'exécution) lien | modifier | drapeau édité le 12 avril 09 à 22:32

a répondu le 10 avril '09 à 19:01 Galets 1,2201924

+0

J'aurais dû le mentionner dans mon post, mais j'ai tout marqué exceptions levées - rien n'apparaît. Je suis en VS2010, et j'ai édité mes tags pour refléter cela. – Dave

+0

Je vais regarder dans le débogage non géré - merci! – Dave

+0

J'ai activé le débogage non géré et j'ai également tout vérifié dans les colonnes Thrown. Il disparaît toujours sans aucune information. – Dave

1

Je suis une erreur similaire quand une DLL se bloque lorsque j'ouvre un OpenFileDialog. Il s'est avéré que OpenFileDialog a changé le répertoire de travail afin que ma DLL essaye d'écrire dans un fichier relatif qui n'existait pas.

Questions connexes