作者:我的菜菜呀 | 来源:互联网 | 2023-08-26 20:23
本文只对miniblink的个人理解,通过修改官方提供的demo_src,具体使用还没那么清楚,还在逐步理解。
1、官网下载demo
https://miniblink.net/
![](https://img2.php1.cn/3cdc5/3984/a6e/cf1e5b15857d32f3.png)
2、win32环境 node.dll;x64环境 miniblink_x64.dll;wke.h头文件
3、打开vs,新建项目,mfc或者空项目都行,使用 Unicode 字符集、不使用预编译头
![](https://img2.php1.cn/3cdc5/3984/a6e/e5b25a1a569c4f00.png)
其中:RenderGDI.h、Resource.h、wkeBrowser.cpp、wke.h都在miniblink-20200614\demo_src中里面有,直接拷贝过来就好了
4、原.cpp
#include "wke.h"
#include
int APIENTRY wkeBrowserMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
typedef struct {wkeWebView window;std::wstring url;
} Application;Application app;void runMessageLoop(Application* app)
{MSG msg = { 0 };while (GetMessageW(&msg, NULL, 0, 0)) {TranslateMessage(&msg);DispatchMessageW(&msg);}
}void runApp(Application* app)
{memset(app, 0, sizeof(Application));app->url = L"http://hook.test/resources/view/index.html"; // 演示使用hook的方式加载资源//wkeJsBindFunction("eShellExec", &onShellExec, nullptr, 3);wkeBrowserMain(nullptr, nullptr, nullptr, TRUE);wkeMoveToCenter(app->window);wkeLoadURLW(app->window, app->url.c_str());runMessageLoop(app);
}int main()
{wkeInitialize();runApp(&app);wkeFinalize();
}
mfc添加一个按键,修改MFC_miniblinkDlg.cpp
#include "miniblink/wke.h"
#include
int APIENTRY wkeBrowserMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
typedef struct {wkeWebView window;std::wstring url;
} Application;Application app;void runMessageLoop(Application* app)
{MSG msg = { 0 };while (GetMessageW(&msg, NULL, 0, 0)) {TranslateMessage(&msg);DispatchMessageW(&msg);}
}
void runApp(Application* app)
{memset(app, 0, sizeof(Application));app->url = L"http://hook.test/resources/view/index.html"; // 演示使用hook的方式加载资源//wkeJsBindFunction("eShellExec", &onShellExec, nullptr, 3);wkeBrowserMain(nullptr, nullptr, nullptr, TRUE);//wkeMoveToCenter(app->window);//wkeLoadURLW(app->window, app->url.c_str());runMessageLoop(app);
}
void CMFC_miniblinkDlg::OnBnClickedButton1()//mfc按键
{// TODO: 在此添加控件通知处理程序代码wkeInitialize();runApp(&app);wkeFinalize();
}
注意:x86对应node.dll;x64对应miniblink_x64.dll,两个dll都放在主文件目录下哦!
![](https://img2.php1.cn/3cdc5/3984/a6e/7b2dded77d306b5b.png)
5、结果
![](https://img2.php1.cn/3cdc5/3984/a6e/c3d73d434406a23d.png)