0

我有一个 ActiveX 组件,它包含一个用于访问特定 URL 的控件(嵌入在复合控件对话框窗格中的 webbrowser 控件)。ActiveX 组件访问 URL 可用于其他 MFC 或 VB 项目。用法是注册 ActiveX 组件(使用 regsvr32 cmd),然后使用“插入 ActiveX 控件”将控件插入到对话框窗口中。

现在我打算将 ActiveX 组件转换为具有相同浏览器窗口和 Web 访问功能的静态库。我想知道怎么做?此外,如何在其他 MFC 项目中使用浏览器窗口(在静态库中)。是通过函数调用吗?是否有可用的示例项目?

我使用 Microsoft .Net 2003 作为开发工具。

非常感谢您提前。

4

1 回答 1

0

我有点不清楚您认为可以将所有这些都放在静态库中的程度。

这可能不会像你想象的那么简单。允许您在对话框中插入 ActiveX 控件的 VS/MFC/ATL 中的向导和代码为您做了很多工作。也就是说,它对 ActiveX 控件的站点性质做出了某些假设,例如消息泵如何工作、谁是所有者窗口、线程模型等等。在对话中,这些是已知的。在另一种情况下,它们不是。

做你正在做的事情的正确方法是将其保留为 ActiveX 控件。也许如果您通过将其放入静态库来说明您要解决的问题,我们可以提供其他选择。

WebBrowser ActiveX 控件实际上是 system32 文件夹中 shdocvw.dll 库的包装器。shdocvw.dll 是 IE 的核心和灵魂(并且,通过扩展,许多 Windows 资源管理器界面)。这一切都非常基于 COM,它有自己的加载库等规则。因此,站点(任何想要使用您的 ActiveX 控件的应用程序)确实需要对 ActiveX/COM 友好。

于 2009-05-06T22:18:26.577 回答