Russian Qt Forum
Октябрь 01, 2024, 16:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Windows предварительный просмотр  (Прочитано 4212 раз)
Yuriy
Гость
« : Сентябрь 17, 2011, 23:36 »

Всем привет !
Кто-нибудь знает как устроен механизм показа предварительного просмотра в Windows ?
Задача следующая: в файле XML зашито изображение PNG, как сделать так чтобы Windows Проводник обращался к библиотеке для считывания графической информации из этого файла. и как растолковать ему что нужно обрабатывать его с помощью этой библиотеки и отображать как PNG картинку Непонимающий

С Linux Gnome разобрался. Показывает изображения на Ура, а вот с Проводником засада !
Спасибо за помощь !
Записан
Yuriy
Гость
« Ответ #1 : Сентябрь 21, 2011, 02:47 »

Ну вроде бы все проясняется. Достаточно было залезть в исходники Wine.

Только вот теперь нужно своять библиотеку, у которой должны быть обязательные функции:

   BOOL DllMain(DWORD dwReason, LPVOID lpReserved) throw();
   HRESULT DllRegisterServer() throw();
   HRESULT DllUnregisterServer() throw();

И здесь начинается коллабс. При попытке вызова regsvr32 /i PreviewDll.dll :
PreviewDll.dll была загружена, но найти точку входа для DllRegisterServer не удалось. Зарегистрировать этот файл невозможно.

Долго копал и дошел до того , что
http://blogs.msdn.com/b/karinm/archive/2007/12/05/troubleshooting-error-c1083-cannot-open-include-file-atlbase-h.aspx

оказывается для того чтобы использовать некоторые функции, типа точек входа в библиотеку нужно купить MS Visual ...

Вообщем, бред из бреда с этим дебильным M& . Народ, выручайте кто может.
Млин под Linux превью в 5 секунд собрал, а M&-вцы закрывают свои апи.
Можно конечно от Wine'а хидеры подключить, но это уже слишком маслянно получается.
Записан
Yuriy
Гость
« Ответ #2 : Сентябрь 21, 2011, 03:01 »

И еще, может кто сталкивался:
как создать void, который можно будет запустить с rundll32.exe? например, rundll32.exe mylib.dll,func

Или для создания таких func нужен платный MS Visual Непонимающий
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #3 : Сентябрь 21, 2011, 08:07 »

создать void, который можно будет запустить
Что-что?
В смысле функцию, ничего не возвращающую?

платный MS Visual
Express же бесплатный.
Записан
Yuriy
Гость
« Ответ #4 : Сентябрь 21, 2011, 13:48 »

Вообщем, невозможно создать библиотеку с помощь MS Visual Express, функции которой вызываются с Rundll32.exe
Потому что в бесплатной Express нет поддержки ATL, которая отвечает за точки входа библиотек.

Блин, только время зря потратил.
Записан
Yuriy
Гость
« Ответ #5 : Сентябрь 21, 2011, 14:46 »

И вообще, все это уже изрядно надоело ! M$ бесплатно раздают программы и как обычно подводные камни: то ассемблерский код не работает, то какие-то функции урезаны.

Надо переходить на GCC я чувствую и под Вин тоже.
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #6 : Сентябрь 21, 2011, 16:51 »

Надо переходить на GCC я чувствую и под Вин тоже.
давно пора.
собирать программы на кросплатформенной либе с пом. платформо зависимого кмпайлера - это обречь себя на будущие неприятности.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 22.