IFileOpenDialog не удалось запустить в XP - PullRequest
0 голосов
/ 26 августа 2011

У меня есть пример приложения, в котором я хочу выбрать папку. Для этого я использовал SHBrowseForFolder (). Но в Vista это не будет работать. Поэтому я использовал IFileOpenDialog. Если версия os - XP, я использую SHBrowseForFolder (), иначе я использую IFileOpenDialog.

Мое приложение отлично работает в Vista. Но он не запустится в XP.

Пожалуйста, дайте мне знать, что мне нужно сделать.

Обновление:

Я заметил, что это не из-за интерфейса IFileOpenDialog. Я использую API SHCreateItemFromParsingName (), чтобы установить папку по умолчанию во время просмотра. Shell32.dll не содержит точки входа в XP. Поэтому я сталкиваюсь с этой проблемой.

Для решения этой проблемы я использую LoadLibrary и GetProcAddres (), чтобы получить адрес Proc.

Теперь я могу запустить приложение.

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

Наш продукт использует SHBrowserForFolder без проблем в Vista / 7.Какой код у вас есть для этой функции?Что возвращает GetLastError ()?Может быть, мы сможем найти проблему там.

1 голос
/ 26 августа 2011

Во всяком случае, отвечая на прямой вопрос, IFileOpenDialog недоступен в XP, поэтому и не удалось. Эквивалентным API для XP является GetOpenFileName.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...