如何从 BHO 将图像嵌入网页?

发布于 2025-01-02 09:04:38 字数 302 浏览 1 评论 0原文

我有一个用 C# 编写的 BHO 库 mybho.dll。我嵌入了一个资源文件“image.png”。我想在某些页面上显示此图像。根据我读到的内容,它应该看起来像这样:

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

但 Internet Explorer 找不到该图像。我尝试过这一方法但没有成功:

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

正确的方法是什么?

I have a BHO library mybho.dll written in C#. I have embedded a Resource file "image.png". I'd like to show this image on some pages. According to what I read, it should look like this:

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

But Internet Explorer does not find the image. I've tried this one without success:

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

What is the right way to do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

锦欢 2025-01-09 09:04:38

您混淆了 Win32 资源和 .NET 程序集资源。 “res:”协议处理程序从 DLL 返回 Win32 资源。 .NET 资源不是 Win32 资源,因此 IE(实际上是 urlmon.dll,其中实现了 res:)无法找到您的图像。

您有两个选择:

  1. 最简单的方法可能是创建 Win32 资源(*.res 文件)并将其嵌入到托管程序集中。首先,创建一个 *.RC 文件,该文件指向您的图像。我不确定,但我认为你必须先将 PNG 转换为 BMP 格式。然后,将 RC 文件编译为二进制资源(使用 RC - 资源编译器)。最后,在构建托管程序集时,使用 /win32res 开关添加 Win32 资源。

  2. 您还可以实现异步可插入协议处理程序。假设您想实现一个新的协议方案:julien://image.png'。在 HKCR\PROTOCOLS\Handler\julien 注册它,并实现 IInternetProtocol (以及其他一些协议)。这不是一个非常容易的任务(只做过一次 - 有很多机会犯错误)。

You are confusing Win32 resources and .NET assembly resources. the 'res:' protocol handler returns a Win32 resource from a DLL. .NET resources are NOT Win32 resources, and as such IE (Actually urlmon.dll, where res: is implemented) cannot find your image.

You have two options:

  1. The easiest way would probably be to create a Win32 resource (*.res file) and embed it into the managed assembly. First, create a *.RC file, which points to your image. I'm not sure, but I think you'll have to convert your PNG to BMP format first. Then, compile the RC file into a binary resource (with RC - the Resource Compiler). Finally, as you build your managed assembly, use the /win32res switch to add the Win32 resource.

  2. You can also implement a Asynchronous Pluggable Protocol handler. Say you want to implement a new protocol scheme: julien://image.png'. Register it at HKCR\PROTOCOLS\Handler\julien, and implement IInternetProtocol (and few other protocols). This is NOT a very easy task (did it once - there are many opportunities to make mistakes).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文