2012-02-06 1 views
3

У меня есть библиотека BHO mybho.dll, написанная на C#. Я включил файл ресурсов «image.png». Я бы хотел показать это изображение на некоторых страницах. В соответствии с тем, что я читал, это должно выглядеть так:Как вставить изображение на веб-страницу из BHO?

<img src="res://mybho.dll/image.png"> 

Но Internet Explorer не находит изображение. Я пробовал этот вариант без успеха:

<img src="res://mybho.dll/#2/image.png"> 

Каков правильный путь?

ответ

2

Вы вводите в заблуждение ресурсы Win32 и ресурсы сборки .NET. обработчик протокола res: возвращает ресурс Win32 из DLL. Ресурсы .NET: NOT Ресурсы Win32, и как таковой IE (На самом деле urlmon.dll, где res: реализовано) не может найти ваше изображение.

У вас есть два варианта:

  1. Самый простой способ, вероятно, будет создать ресурс Win32 (* .res файл) и встроить его в управляемую сборку. Сначала создайте файл * .RC, который указывает на ваше изображение. Я не уверен, но я думаю, вам придется сначала конвертировать PNG в формат BMP. Затем скомпилируйте RC-файл в двоичный ресурс (с RC - компилятором ресурсов). Наконец, по мере сборки вашей управляемой сборки используйте переключатель/win32res для добавления ресурса Win32.

  2. Вы также можете реализовать обработчик асинхронного подключаемого протокола. Предположим, вы хотите реализовать новую схему протокола: julien: //image.png '. Зарегистрируйте его в HKCR \ PROTOCOLS \ Handler \ julien и реализуйте IInternetProtocol (и несколько других протоколов). Это НЕ очень простая задача (это было однажды - есть много возможностей совершать ошибки).