# vb6_miniblink_demo **Repository Path**: qqworker/vb6_miniblink_demo ## Basic Information - **Project Name**: vb6_miniblink_demo - **Description**: VB6版本的Miniblink浏览器demo - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-04-05 - **Last Updated**: 2023-07-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 介绍 MiniBlink是国内著名的浏览器专家龙泉扫地僧开发的chrome内核的浏览器组件。
项目首页:http://www.miniblink.net/index.html
Miniblink压缩后仅几M左右的体积,只需一个dll,通过纯C接口,数行代码即可集成到各种软件,并且完美支持WinXP、NpAPI
但是由于Miniblink的免费版的node.dll文件导出的方式是__cdecl
目前VB6的实现方式只看到有这个由国人写的Ocx组件:
https://github.com/imxcstar/vb6-miniblink-SBrowser
@imxcstar 确实是一位VB大牛,至少我没想到能用这种方式调用。
另外,由于VB对多线程的支持有限,对于Miniblink的多线程版本mb.dll,在调用多线程的接口例如获取cooki、下载等接口release程序都会无故崩溃,暂时无解~。所以VB的朋友暂时只能使用免费版本,具体问题已经反馈给龙泉扫地僧,期待下面修改。
我开这个项目的目的,是希望把Miniblink的最后开源的版本,把node.dll 改为__stdcall导出。
扫地僧的代码很友好,修改起来非常简单:
1、wke\wkedefine.h
``` 修改#define WKE_CALL_TYPE __cdecl为#define WKE_CALL_TYPE __stdcall ``` 2、miniblink项目增加一个预定义文件 miniblink.def,代码在项目根目录
3、wke\wke2.cpp文件,把 ``` void wkeUtilRelasePrintPdfDatas(const wkePdfDatas* datas) { for (int i = 0; i < datas->count; ++i) { free((void *)(datas->datas[i])); } free((void *)(datas->sizes)); free((void *)(datas->datas)); delete datas; } const wkePdfDatas* wkeUtilPrintToPdf(wkeWebView webView, wkeWebFrameHandle frameId, const wkePrintSettings* settings) { content::WebPage* webPage = webView->webPage(); blink::WebFrame* webFrame = webPage->getWebFrameFromFrameId(wke::CWebView::wkeWebFrameHandleToFrameId(webPage, frameId)); return wke::printToPdf(webView, webFrame, settings); } const wkeMemBuf* wkePrintToBitmap(wkeWebView webView, wkeWebFrameHandle frameId, const wkeScreenshotSettings* settings) { return wke::printToBitmap(webView, settings); } ``` 这三个函数名后面加个2 4、依次编译这些项目 ``` libcurl.lib harfbuzz.lib libxml.lib libjpeg.lib libpng.lib openssl.lib ots.lib skia.lib zlib.lib wolfssl.lib v8_5_7_1.lib v8_5_7.lib node.lib ``` 从而生成支持stdcall的node.dll