纯C++嵌入网页功能实现
纯 C++写的桌面程序里插个网页,有时候还挺实用的。比如要嵌个用户协议、加载个在线表单,或者干脆把一整个网页嵌进去当功能模块用,省事。这个资源用的是比较老派的方式:靠 Windows API + COM 技术 + ActiveX 控件,把 IE 浏览器核心IWebBrowser2
塞进自己的窗口里。
Windows 的窗口由你自己手动造,用 API 一层层地堆。用CoCreateInstance
搞出IWebBrowser2
,再嵌进窗口,调Naviagte
方法加载网页,就成了一个能上网的小窗口。代码里像WebBrowser.cpp
和WBClientSite.cpp
这些文件,估计就是在浏览器控件的嵌入、事件响应等细节。
要注意,ActiveX 虽然能跑,但 IE 的内核毕竟老了,兼容性差点意思,安全性也堪忧。所以现在大多数人会更偏向用 CEF 或 WebView2 那种现代方案。不过要是你项目环境限制大、只想快速集成个静态网页,那这个方法还蛮合适的。
项目里带的.dsp
和.dsw
是老 Visual Studio 的工程格式,想跑的话建议用 VS2010 之类的老版本,或者自己动手迁到.vcxproj
去。如果你对 COM 不熟,先去看看COM 技术那篇,讲得还挺通俗。
,这种方式算是“复古但好使”。如果你想在纯 C++程序里快速搞个网页控件,不想折腾 CEF 体积大的问题,可以先从这套方案试试。
28.09KB
文件大小:
评论区