Дек 092009

Qt : 4.5

VS: 2008

Поискав буржуйнете доступные пониманию простых смертных средства разработки и и библиотеки, перелопатив тонны говна оставленного начинающими программистами, я было совсем отчаялся, но тут вдруг вспомнил, что есть такая замечательная либа как Qt.

Приободренный такой вот новостью я, я помчался на сайт trolltech. Да-да: теперь – это NOKIA. Ну нам то, как бы, ни хуй бы не уперлось, кто это: хоть Санта Клаус. Лишь бы работало. Сказано – сделано, слил их SDK (~300 метров). ДАй думаю, соберу чего нить.

Смело запустил кути студию. Наваял пару кнопок, обработчик и пару слотов. Запустил – радует глаз. Очень радует.

Если бы не волшебное слово deployment. А суть, дорогой товарищ, в том, что, по-умолчанию, Qt поставляется как подключаемая библиотека .dll. Собственно, о независимой поставке не может быть и речи. А мои надобности требовали именно статической сборки.

Continue reading »

Posted by WereBeast
Сен 232009

Сегодня, друг мой, мы познакомимся с такой технологией, как COM (Component Object Model). Адский высер товарищей из Microsoft, НО(!) от этого не менее полезный.
Вот конкретно мне это понадобилось, чтобы сделать Internet Explorer послушным, белым и пушистым. То есть, чтобы программно заставить IE делать то, что нужно нам, включая навигацию, доступ к DOM-дереву и тому подобные ништячки, ну ты понимаешь к чему я ;)
Итак, моя задача стояла примерно так:

  1. У меня есть исходник некоей софты, написанной на Delphi 7. Соответственно, реализовывать мы это дело будем, используя именно эту IDE (да, я знаю, что это танцы на костях, но делать нечего, такой уж проект).
  2. Далее, ввиду садомазохистических надобностей, нельзя было реализовывать ЭТО внутри VCL-объекта TWebBrowser и хостить это внутри формы.  Kill me, plz! . То есть, мне нужно создать окно Internet Explorer и перхватить управление.
  3. Далее, нужно сделать так, чтобы Internet Explorer не только программно управлялся и выполнял Navigate и Refresh, но и позволил мне просматривать его элементы и DOM-дерево. Kill me twice, then burn my corpse!

На самом-то деле, задач стояло больше, но, в рамках данной статьи, я рассмотрю именно эти. Что у меня получится, смотри под катом.

Continue reading »

Posted by WereBeast