CFileDialog поддерживает XP и Vista

мое приложение поддерживает XP и выше, и я пытаюсь использовать более новые интерфейсы CFileDialog (т.е. GetIFileOpenDialog ()) при работе в Vista и более поздних версиях (с учетом ограничений этих интерфейсов).

Поэтому я проверяю версию ОС и пытаюсь использовать эти интерфейсы, если необходимо, и прибегаю к более старым методам для XP. Проблема в том, что при работе под XP я получаю сбои LoadLibrary (код находится в DLL), так что, похоже, происходит некоторое раннее связывание. Как только я закомментирую код, который использует эти интерфейсы, LoadLibrary завершается успешно.

Можно ли вообще иметь код CFileDialog, используя функции Vista, работающие под XP, даже если код не вызывается?

Спасибо

0

Решение

Вам нужно будет вручную загрузить соответствующую библиотеку с LoadLibrary()(это не будет загружено во второй раз, но вам нужен хороший дескриптор для этого), а затем используйте GetProcAddress() узнать адрес функции (GetIFileOpenDialog). Если вы просто используете функцию Vista напрямую, она не будет загружаться в XP, так как она, как вы говорите, привязывает функцию напрямую.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]