OpenFileDialog вылетает под Windows XP, но не под Windows 7 - PullRequest
1 голос
/ 14 апреля 2011

У меня странная проблема, которую я раньше не видел.Я могу открыть OpenFileDialog в Windows 7 без проблем.Однако, когда я пробую свое приложение в Windows XP, вызов OpenFileDialog.ShowDialog() сразу приводит к сбою приложения.Это просто исчезает!При запуске из отладчика я не получаю никаких необработанных исключений.Если я оберну код в блок try / catch, ничего не получится.Я также проверил все сгенерированные исключения в Debug -> Exceptions, но ничего не появляется.Я попробую некоторые другие предложения в ответах ниже и сообщу.

Кто-нибудь знает, как решить эту проблему?Я нашел сообщение о чем-то похожем , но это была противоположная проблема.Я попробую настроить параметры рабочего стола, чтобы посмотреть, связано ли это с этим, но я сомневаюсь.

РЕДАКТИРОВАТЬ - в качестве проверки работоспособности я написал тестовое приложение WPF, которое отображает OpenFileDialog непосредственно черезглавное окно, а также другое Window, которое может отображаться в главном окне.Он полностью работает нормально под Windows XP.Так что теперь я действительно запутался.Я убедился, что я не делаю глупостей, например, пытаюсь отобразить диалог из рабочего потока.OpenFileDialog отображается на короткое время, а затем исчезает вместе с приложением.

РЕДАКТИРОВАТЬ - я собираюсь попытаться воспроизвести эту проблему на другом компьютере XP.Сейчас я попробую режим Windows XP и посмотрим, что произойдет.

Ответы [ 3 ]

1 голос
/ 04 апреля 2012

Я получаю похожую ошибку, когда происходит сбой DLL при открытии OpenFileDialog.Оказалось, что OpenFileDialog изменил рабочий каталог, поэтому моя dll пыталась записать в относительный файл, который не существует.

0 голосов
/ 14 апреля 2011

См. пост Гале


Я не могу сказать вам, в чем именно проблема, но вот что вы можете сделать, чтобы получить представление о том, что на самом деле происходит.Я предполагаю, что вы используете VS2008 или 2005.

1. Переключитесь в режим выпуска 2. Перейдите в Debug \ Exceptions и отметьте все исключения «Throw», как показано здесь: http://vvcap.net/db/JbWS_tzy2IpBoI7R7amm.htp 3.Запустите исполняемый файл в отладчике, игнорируйте предупреждения от VS об отсутствии отладочной информации. Кажется, что во время выполнения возникает исключение win32, но так или иначе, вы получите одно или несколько сообщений отладчика, объясняющих, что произошло исключениеи где.В большинстве случаев эти сообщения ясно показывают, что именно пошло не так

РЕДАКТИРОВАТЬ: Одна вещь, которую я забыл упомянуть, это то, что неуправляемая отладка также должна быть включена, например, здесь (когда вы запускаете программу непосредственно из IDE) илиздесь (когда вы присоединяетесь к запущенному процессу) ссылка | редактировать | флаг отредактирован 12 апреля 2009 в 22: 32

ответил 10 апреля 2009 в 19:01 galets 1,2201924

0 голосов
/ 14 апреля 2011

Видите ли вы какие-либо исключения "Первый шанс" в выходных данных? Есть записи в журнале событий? Существует ли используемый по умолчанию путь на компьютере с XP?

Попробуйте добавить обработчик к домену приложения UnhandledException

Происходит ли то же самое, когда вы используете совершенно новый сток FileOpenDialog без каких-либо настроек? А как насчет совершенно нового приложения, которое показывает только диалог открытия файла?

...