трабл с IActiveDesktop
От: Crush Россия http://www.ael.ru/_crush/
Дата: 14.03.02 05:24
Оценка:
Пишу на C++Builder 5. Нужно Воспользоваться интерфейсом IActiveDesktop для работы с веб-содержимым рабочего стола. В MSDN сказано, что подключается он библиотекой shlobj.h. Но при подключении этой библиотеки получается глюк — возникают четыре ошибки множественной декларации структур:

[C++ Error] shlobj.h(1762): E2238 Multiple declaration for 'FVSHOWINFO'
[C++ Error] shlobj.h(1936): E2238 Multiple declaration for 'FOLDERSETTINGS'
[C++ Error] shlobj.h(3717): E2238 Multiple declaration for 'DESKBANDINFO'
[C++ Error] shlobj.h(4808): E2238 Multiple declaration for 'SHELLFLAGSTATE'

Они декларируются в какой-то библиотеке, подключаемой вместе с vcl.h, а их там много :)
Т.е. декларируются они и в shlobj.h и где-то еще.....
Я ДАЖЕ пытался вырезать эти структуры из shlobj.h, но это привело к появлению еще большего числа ошибок (чего, собственно, и следовало ожидать...:)
И как тут быть???
Не ошибается то, что не работает. (с) Windows
Re: трабл с IActiveDesktop
От: Crush Россия http://www.ael.ru/_crush/
Дата: 14.03.02 11:03
Оценка:
И еще, что интересно. Отключаешь библиотеку vcl.h и перестают узнаваться функции из IActiveDesktop.
Бред какой-то, но если подключены библ. и vcl.h, и shlobj.h, то IActiveDesktop виден, а если хоть одна из них отключена, то не виден....... А включены обе, то ошибка множественной декларации о которой я писал.....
Не ошибается то, что не работает. (с) Windows
Re: трабл с IActiveDesktop
От: Vladik Россия  
Дата: 14.03.02 12:45
Оценка: 3 (1)
Здравствуйте Crush, Вы писали:

C>И как тут быть???


Там есть define хитрый, типа NO_WIN32_LEAN_AND_MEAN — надо его определить.
P.S. Вот только зачем борланд такое учудил — я так и не понял.
Как все запущенно...
Re[2]: трабл с IActiveDesktop
От: Crush Россия http://www.ael.ru/_crush/
Дата: 15.03.02 05:35
Оценка:
2 Vladik

Ура!!!! Заработала!!!
Оргомное спасибо! Даже не представляешь как выручил :))))
Не ошибается то, что не работает. (с) Windows
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.