Могу ли я использовать c ++ для прохождения DOM из C # BHO? - PullRequest
3 голосов
/ 31 октября 2010

Я пишу объект Browser Helper Object (BHO) для Internet Explorer в C #!

Я хочу искать текстовые узлы в DOM, что требует от меня обхода всего дерева DOM, если я хочуразличать текстовые узлы и другие типы узлов.Это предположительно занимает много времени в C #, но должно быть почти мгновенно в C ++ (?).

Есть ли способ сделать обход в c ++ вместо этого?DLL, что я могу позвонить из C #, возможно, используя DllImport?Легко ли передать HTMLDocument моему внешне выставленному методу c ++?

Любые другие идеи?

Приветствия!

Ответы [ 2 ]

2 голосов
/ 31 октября 2010

Откуда вы взяли "якобы"? Большая часть времени будет потрачена на код, который реализует DOM. Который был написан на C ++ Microsoft.

Marshal.GetIUnknownForObject () возвращает необработанный указатель интерфейса, который можно передать в собственный код Он должен QI указатель на IHtmlDocument2 и взять его оттуда.

0 голосов
/ 01 ноября 2010
Это предположительно занимает много времени в C #,

Это просто неправильно.

Большая часть времени пользователя будет потрачена на ожидание поступления HTML-кода в браузер и его отображения на экране браузером. По сравнению с этим, ходить DOM (на любом языке) совсем несложно.

...