Здравствуйте, Etud, Вы писали:
E>Делаю редактор HTML. E>Мне посоветовали добавить в референс MSHTML, E>то есть найти объектную библиотеку COM mshtml.tlb. E>c:\windows\system32\mshtml.tlb E>У меня на машине, с установленной VS 2005 все работает хорошо, E>а на другой машине — ошибка. E>Если приложить Microsoft.mshtml.dll к проекту — все нормально. E>В чем проблема и надо ли приклабывать к проекту E>эту DLL (Microsoft.mshtml.dll).
Надо прикладывать. Microsoft.mshtml.dll — это wrapper над "стандартной" mshtml.tlb. Врапер нушен для того, что бы работать с COM-ской билбиотекой (tlb) из .NET.
Help will always be given at Hogwarts to those who ask for it.
_FR>Надо прикладывать. Microsoft.mshtml.dll — это wrapper над "стандартной" mshtml.tlb. Врапер нушен для того, что бы работать с COM-ской билбиотекой (tlb) из .NET.
Тут просто один спорщик доказывал:
"подрубаешь в реферер mshtml.tlb и все, зачем еще Microsoft.mshtml.dll".
В чем минус — большой размер DLL(8 MБ) + к проекту.
Проект небольшой 100 КБ.
А есть ли способ ее уменьшить ???
Здравствуйте, Etud, Вы писали:
E>В чем минус — большой размер DLL(8 MБ) + к проекту. E>Проект небольшой 100 КБ. E>А есть ли способ ее уменьшить ???
Можно тащить с собой TlbImp из SDK и запускать во время инсталяции. Зависимостей (лишних) у неё нет. Или же посмотреть её код рефлектором и передрать куда-либо себе алгоритм генерации враппера (но это для мазохистов).
Help will always be given at Hogwarts to those who ask for it.
_FR>Можно тащить с собой TlbImp из SDK и запускать во время инсталяции. Зависимостей (лишних) у неё нет. Или же посмотреть её код рефлектором и передрать куда-либо себе алгоритм генерации враппера (но это для мазохистов).
Здравствуйте, Etud, Вы писали:
E>DLL-ка сгенерилась, но версия отличалась от майкрософтовской (7.0.3300.0) — 4.0.0...
А откуда у тебя взялась майкрософторская?
E>Приложил, запустил — ошибка !
Не бывает "ошибок" без каких-либо дополнительных данных: текст, тип исключения, дамп памяти, фотография блюскрина или обгоревшей материнской платы, … Какие данные есть на эту самую ошибку?
E>А как запускать TlbImp во время инсталяции ???
Почитай про то, как делать инсталяции.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, Etud, Вы писали:
E>В чем минус — большой размер DLL(8 MБ) + к проекту. E>Проект небольшой 100 КБ. E>А есть ли способ ее уменьшить ???
Отличный и правомерный вопрос. Уменьшить можно на пару порядков реально, смотря что именно тебе надо из интерфейсов mshtml. Алгоритм уменьшения следующий:
— берешь Reflector, и с помощью одного из плагинов к нему получаешь исходный код сымпортированной либы Microsoft.mshtml.dll, в исходниках ты увидишь лишь бесчисленные описания интерфейсов HTML DOM, а так же IDispatch-версии оных.
— смотришь в своём проекте, какие реально интерфейсы ты используешь, и удаляешь нафиг ненужное (обычно 99% не нужно).
— компилируешь остаток в новую либу, или как вариант — присовокупляешь этот остаток непосредственно к своему проекту.