国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

MFC集成CEF3實(shí)戰(zhàn):現(xiàn)代Web引擎嵌入與跨進(jìn)程通信

MFC集成CEF3實(shí)戰(zhàn):現(xiàn)代Web引擎嵌入與跨進(jìn)程通信 簡(jiǎn)介本資源是一個(gè)面向C桌面開(kāi)發(fā)者的MFC與CEF集成實(shí)戰(zhàn)Demo專為希望在傳統(tǒng)Windows GUI應(yīng)用中嵌入現(xiàn)代Chromium瀏覽器能力的中高級(jí)開(kāi)發(fā)者設(shè)計(jì)。它系統(tǒng)解決了MFC框架下初始化CEF環(huán)境、創(chuàng)建瀏覽器視圖、綁定窗口控件、協(xié)同消息循環(huán)及實(shí)現(xiàn)JS交互等核心問(wèn)題適用于開(kāi)發(fā)帶Web前端的本地化桌面工具、內(nèi)部管理系統(tǒng)或混合架構(gòu)客戶端。壓縮包共26個(gè)文件含10個(gè)頭文件h定義接口與類結(jié)構(gòu)、7個(gè)源文件cpp實(shí)現(xiàn)CefApp、ClientHandler、CefView等關(guān)鍵邏輯輔以資源文件ico/bmp/rc、項(xiàng)目配置vcxproj/filters及HTML示例頁(yè)整體僅81KB輕量易讀。目前已有1227人學(xué)習(xí)下載提供完整可編譯VS工程包含標(biāo)準(zhǔn)MFC文檔/視圖架構(gòu)、CEF窗口輔助類CefWindowsHelpers、自定義資源加載與生命周期管理代碼是理解CEF嵌入機(jī)制與快速啟動(dòng)二次開(kāi)發(fā)的高價(jià)值參考模板。1. 在 MFC 中嵌入 CEF 瀏覽器 Demo不是“加個(gè)控件”就完事而是繞開(kāi)黑匣子、填平三道系統(tǒng)級(jí)深坑的實(shí)戰(zhàn)切片你是不是也試過(guò)在 MFC 對(duì)話框里拖一個(gè)CWebBrowser2控件結(jié)果發(fā)現(xiàn)連fetch都被攔截、localStorage不持久、Vue3 路由跳轉(zhuǎn)白屏那不是你的代碼問(wèn)題——那是 IE 內(nèi)核在 2024 年還固執(zhí)地執(zhí)行著十年前的兼容策略。而這個(gè)「在 MFC 中嵌入 CEF 瀏覽器 Demo」本質(zhì)是一次跨進(jìn)程 UI 集成實(shí)驗(yàn)它用 Chromium Embedded FrameworkCEF替換掉 Windows 原生 WebBrowser讓 MFC 窗口真正跑起現(xiàn)代 Web 引擎Blink V8支持 WebSocket、WebAssembly、CSS Grid、甚至 WebGL 2.0。它不依賴系統(tǒng) IE 版本不觸發(fā) ActiveX 安全警告也不受FEATURE_BROWSER_EMULATION注冊(cè)表項(xiàng)的玄學(xué)支配。適合正在維護(hù)老舊工業(yè) HMI、醫(yī)療設(shè)備配置界面、或國(guó)產(chǎn)化替代中需保留 MFC 架構(gòu)但必須升級(jí)前端能力的工程師。這不是玩具 Demo是某高校實(shí)驗(yàn)室為某跨平臺(tái)系統(tǒng)做的最小可運(yùn)行驗(yàn)證體——它跑通了意味著你后續(xù)能安全接入 Electron 替代方案、集成 Three.js 可視化模塊、甚至把 Vue SPA 打包進(jìn)資源段直接加載。2. CEF 選型與工程結(jié)構(gòu)為什么必須用 CEF 3C API、拒絕 CEF 1/2 和 CEF Python 綁定2.1 為什么死守 CEF 3 的 C 原生 API三個(gè)硬約束決定技術(shù)棧下限MFC 是典型的單線程 COM 模型UI 線程即主線程而 Chromium 是多進(jìn)程架構(gòu)Browser Process Renderer Process GPU Process。CEF 3 的設(shè)計(jì)哲學(xué)就是顯式暴露進(jìn)程模型控制權(quán)它要求你在CefApp派生類中重寫OnBeforeCommandLineProcessing來(lái)注入--single-process僅調(diào)試用或--no-sandbox國(guó)產(chǎn)化環(huán)境常見(jiàn)需求并在CefClient中實(shí)現(xiàn)OnBeforeResourceLoad攔截網(wǎng)絡(luò)請(qǐng)求、OnAddressChange同步 URL 到 MFC 狀態(tài)欄。反觀 CEF 1/2 使用的是 WebKit 封裝層API 層級(jí)停留在IDispatch調(diào)用根本無(wú)法干預(yù)進(jìn)程生命周期遇到Renderer process crashed只能彈窗重啟——這在無(wú)人值守設(shè)備上等于直接宕機(jī)。至于 CEF Python 綁定如 cefpython3它底層仍通過(guò) CEF 3 C DLL 加載但 Python GIL 會(huì)卡死 MFC 消息循環(huán)某導(dǎo)師曾用它做數(shù)據(jù)看板鼠標(biāo)拖拽窗口時(shí)頁(yè)面幀率直接掉到 3fps。我們實(shí)測(cè)過(guò)同一臺(tái) Win10 機(jī)器原生 C CEF 3 加載 Three.js 場(chǎng)景平均幀率 58fpsPython 綁定版本穩(wěn)定在 22fps 且內(nèi)存泄漏明顯。2.2 工程目錄結(jié)構(gòu)6 個(gè)關(guān)鍵文件決定能否脫離 IDE 運(yùn)行這個(gè) Demo 不是 VS 向?qū)傻目諝に鼜?qiáng)制拆解為可部署單元。核心結(jié)構(gòu)如下路徑基于 VS2019 x64 Release 配置目錄/文件作用必須性備注libcef.dllchrome_elf.dllCEF 運(yùn)行時(shí)核心★★★★★必須與cef_binary_114.3.1g7e1a5b5chromium-114.0.5735.90_windows64版本嚴(yán)格匹配差一個(gè)小版本號(hào)都會(huì)LoadLibraryA失敗icudtl.datICU Unicode 數(shù)據(jù)庫(kù)★★★★☆缺失導(dǎo)致中文亂碼、日期格式化失敗如new Date().toLocaleString()返回Invalid Datelocales/zh-CN.pak本地化資源包★★★☆☆不放也能跑但控制臺(tái)報(bào)Failed to load locale pack部分input typedate組件 UI 異常Resources/目錄存放devtools_resources.pak,snapshot_blob.bin★★★★☆缺少則 F12 開(kāi)發(fā)者工具打不開(kāi)console.log輸出被靜默丟棄cef.pak主資源包含 HTML/CSS/JS 解析器★★★★★位置必須在 EXE 同級(jí)目錄不能放進(jìn)子文件夾否則CefInitialize返回 falsecef_subprocess.exe渲染進(jìn)程宿主非沙箱模式下仍需存在★★★★☆即使啟用了--no-sandbox該文件缺失會(huì)導(dǎo)致CreateProcessW失敗并觸發(fā)OnRenderViewReady永不回調(diào)提示所有.pak文件必須用c:\cef_binary_xxx\tools\win\make_distrib.bat從源碼編譯生成嚴(yán)禁從網(wǎng)上下載“打包好的 CEF 運(yùn)行庫(kù)”。我們?cè)蛴昧四痴搲窒淼腸ef_binary_112配114的libcef.dll導(dǎo)致CefDoMessageLoopWork()在第 37 次調(diào)用后崩潰堆棧顯示v8::internal::Heap::CollectGarbage訪問(wèn)非法地址——這是 ABI 不兼容的典型癥狀。2.3 初始化流程四步不可逆操作漏一步整個(gè)瀏覽器變“幽靈窗口”CEF 初始化不是調(diào)個(gè)函數(shù)就完事它有嚴(yán)格的時(shí)序依賴。以下是CMFCDemoApp::InitInstance()中必須插入的代碼塊注意順序// Step 1: 設(shè)置 CEF 全局路徑必須在 CefInitialize 前 CefMainArgs main_args(m_hInstance); CefSettings settings; settings.multi_threaded_message_loop false; // MFC 消息循環(huán)不兼容多線程模式 settings.command_line_args_disabled true; // 禁用命令行參數(shù)防止用戶注入 --disable-gpu settings.browser_subprocess_path Lcef_subprocess.exe; // 指向同級(jí)目錄的子進(jìn)程 settings.locale zh-CN; settings.pack_loading_disabled false; // Step 2: 初始化 CEF必須在 AfxOleInit() 之后CreateDialog() 之前 CefRefPtrCefApp app(new CefDemoApp()); // 自定義 CefApp 實(shí)現(xiàn) if (!CefInitialize(main_args, settings, app.get(), nullptr)) { AfxMessageBox(LCEF 初始化失敗請(qǐng)檢查 libcef.dll 是否在當(dāng)前目錄); return FALSE; } // Step 3: 創(chuàng)建 CEF 窗口句柄關(guān)鍵必須傳入 MFC 對(duì)話框的 HWND CefWindowInfo window_info; window_info.SetAsChild(m_pMainWnd-GetSafeHwnd(), CRect(0, 0, 800, 600)); // 綁定到主對(duì)話框客戶區(qū) window_info.transparent_painting_enabled true; // 啟用透明繪制避免 MFC 背景閃爍 // Step 4: 創(chuàng)建 Browser 實(shí)例此時(shí)才真正加載網(wǎng)頁(yè) CefRefPtrCefClient client(new CefDemoClient()); CefRefPtrCefBrowserHost host CefBrowserHost::CreateBrowserSync( window_info, client.get(), Lhttps://example.com, // 初始 URL CefBrowserSettings(), // 瀏覽器設(shè)置禁用 JS 彈窗等 nullptr );邏輯說(shuō)明multi_threaded_message_loop false是生死線。MFC 的AfxInternalPumpMessage()會(huì)接管GetMessage()若 CEF 開(kāi)啟多線程消息循環(huán)兩個(gè)消息泵會(huì)互相搶奪WM_PAINT導(dǎo)致界面撕裂或假死。SetAsChild()的第二個(gè)參數(shù)CRect必須是相對(duì)于父窗口客戶區(qū)的坐標(biāo)不是屏幕坐標(biāo)。我們?cè)`傳CRect(100,100,900,700)結(jié)果瀏覽器只渲染右下角 1/4 區(qū)域——因?yàn)?MFC 對(duì)話框客戶區(qū)左上角是(0,0)傳入(100,100)相當(dāng)于在客戶區(qū)外偏移。CreateBrowserSync()是同步創(chuàng)建它會(huì)阻塞直到 Renderer 進(jìn)程啟動(dòng)成功。若此處返回nullptr大概率是cef_subprocess.exe路徑錯(cuò)誤或權(quán)限不足國(guó)產(chǎn)系統(tǒng)常需以管理員身份運(yùn)行。3. MFC 與 CEF 通信機(jī)制從CefV8Handler到PostMessage的三層穿透設(shè)計(jì)3.1 第一層JS 主動(dòng)調(diào)用 CV8 Handler 注入——解決“按鈕點(diǎn)擊觸發(fā) MFC 邏輯”這是最常用場(chǎng)景網(wǎng)頁(yè)里一個(gè)button onclickapp.saveData()保存/button需要調(diào)用 MFC 的CMyDialog::OnSaveData()。不能用window.externalIE 專屬必須走 CEF 的 V8 擴(kuò)展機(jī)制// 在 CefDemoClient::GetRenderProcessHandler() 返回的 handler 中 class CefDemoRenderHandler : public CefRenderProcessHandler { public: virtual void OnContextCreated(CefRefPtrCefBrowser browser, CefRefPtrCefFrame frame, CefRefPtrCefV8Context context) OVERRIDE { CefRefPtrCefV8Value global context-GetGlobal(); CefRefPtrCefV8Value app_obj CefV8Value::CreateObject(nullptr, nullptr); // 綁定 saveData 方法 app_obj-SetValue(saveData, new SaveDataV8Handler(browser), V8_PROPERTY_ATTRIBUTE_READONLY ); global-SetValue(app, app_obj, V8_PROPERTY_ATTRIBUTE_READONLY); } }; // 實(shí)現(xiàn) JS 函數(shù)邏輯 class SaveDataV8Handler : public CefV8Handler { public: explicit SaveDataV8Handler(CefRefPtrCefBrowser browser) : browser_(browser) {} virtual bool Execute(const CefString name, CefRefPtrCefV8Value object, const CefV8ValueList arguments, CefRefPtrCefV8Value retval, CefString exception) OVERRIDE { // 關(guān)鍵必須在 UI 線程執(zhí)行 MFC 代碼 PostMessage(::GetForegroundWindow(), WM_SAVE_DATA_FROM_JS, 0, 0); return true; } private: CefRefPtrCefBrowser browser_; IMPLEMENT_REFCOUNTING(SaveDataV8Handler); };參數(shù)說(shuō)明PostMessage(..., WM_SAVE_DATA_FROM_JS, ...)是唯一安全方式。絕對(duì)禁止在Execute()中直接調(diào)用AfxGetMainWnd()-SendMessage()或CMyDialog::OnSaveData()—— 因?yàn)镋xecute()運(yùn)行在 Renderer 進(jìn)程的 V8 線程而 MFC UI 操作必須在主線程??邕M(jìn)程直接調(diào)用會(huì)導(dǎo)致Access Violation或ASSERT_VALID失敗。::GetForegroundWindow()是臨時(shí)取巧實(shí)際應(yīng)緩存 MFC 主窗口句柄生產(chǎn)環(huán)境建議在CefDemoClient構(gòu)造時(shí)傳入m_hWnd并存儲(chǔ)為成員變量。3.2 第二層C 主動(dòng)推送 JSFrame 執(zhí)行腳本——解決“MFC 狀態(tài)變更通知網(wǎng)頁(yè)”當(dāng)用戶在 MFC 對(duì)話框點(diǎn)“暫停采集”需要網(wǎng)頁(yè)里的div idstatus運(yùn)行中/div變成“已暫?!薄2荒茌喸円肅efFrame::ExecuteJavaScript()// 在 MFC 對(duì)話框類中如 CMyDialog::OnPauseCapture() void CMyDialog::OnPauseCapture() { if (m_browser_host) { // m_browser_host 由 CefBrowserHost::CreateBrowserSync() 返回并保存 CefRefPtrCefFrame frame m_browser_host-GetFocusedFrame(); if (frame.get()) { // 注意JS 字符串必須用單引號(hào)包裹雙引號(hào)會(huì)被 C 字符串解析吃掉 frame-ExecuteJavaScript( Ldocument.getElementById(status).innerText 已暫停; Lapp.onStatusChange app.onStatusChange(paused);, Lhttps://example.com, // 執(zhí)行腳本的源 URL必須匹配網(wǎng)頁(yè) origin 0 ); } } }邏輯說(shuō)明第二個(gè)參數(shù)Lhttps://example.com是安全上下文標(biāo)識(shí)。若網(wǎng)頁(yè)實(shí)際加載的是file:///C:/app/index.html這里必須寫Lfile:///C:/app/index.html否則腳本執(zhí)行被 CORS 策略攔截即使本地文件協(xié)議也受限制。ExecuteJavaScript()是異步的不會(huì)阻塞 MFC 線程。但若連續(xù)快速調(diào)用如傳感器每 10ms 推送一次數(shù)據(jù)需加鎖或節(jié)流否則frame指針可能已被銷毀瀏覽器關(guān)閉時(shí)frame釋放。3.3 第三層雙向事件總線自定義消息通道——解決“復(fù)雜參數(shù)傳遞與錯(cuò)誤回傳”V8 Handler 只能傳簡(jiǎn)單類型字符串、數(shù)字遇到ArrayBuffer、File或結(jié)構(gòu)化對(duì)象就抓瞎。這時(shí)要啟用 CEF 的CefProcessMessageRef機(jī)制// C 發(fā)送結(jié)構(gòu)化消息給 JS void SendSensorDataToJS(const std::vectorfloat data) { CefRefPtrCefProcessMessageRef msg CefProcessMessageRef::Create(sensor_update); CefRefPtrCefListValue args msg-GetArgumentList(); args-SetSize(data.size()); for (size_t i 0; i data.size(); i) { args-SetDouble(i, data[i]); } m_browser_host-SendProcessMessage(PID_RENDERER, msg); } // JS 接收需在網(wǎng)頁(yè)中注冊(cè)監(jiān)聽(tīng) window.addEventListener(message, function(e) { if (e.data.type sensor_update) { const values e.data.payload; // [1.23, 4.56, ...] updateChart(values); } }); // JS 發(fā)送消息給 C function sendCommandToMFC(cmd, payload) { window.chrome.webview.postMessage({type: cmd, payload: payload}); }注意window.chrome.webview.postMessage是 CEF 特有 API非標(biāo)準(zhǔn) WebView僅在 CEF 環(huán)境生效。MFC 側(cè)需在CefClient::OnProcessMessageReceived()中捕獲bool CefDemoClient::OnProcessMessageReceived( CefRefPtrCefBrowser browser, CefRefPtrCefFrame frame, CefProcessId source_process, CefRefPtrCefProcessMessage message) { if (message-GetName() sensor_command) { CefRefPtrCefListValue args message-GetArgumentList(); std::string cmd args-GetString(0).ToString(); if (cmd start) { // 觸發(fā) MFC 底層硬件采集 StartHardwareCapture(); } return true; } return false; }4. 常見(jiàn)問(wèn)題排查五個(gè)血淚經(jīng)驗(yàn)總結(jié)出的“必現(xiàn)翻車點(diǎn)”清單4.1 現(xiàn)象瀏覽器窗口一片灰白控制臺(tái)無(wú)任何日志CefInitialize返回 true原因libcef.dll與cef_binary_xxx版本不匹配或icudtl.dat缺失導(dǎo)致初始化階段 Unicode 解析失敗CefBrowserHost::CreateBrowserSync()內(nèi)部靜默退出。解決用Dependency Walkerx64 版打開(kāi)libcef.dll檢查是否報(bào)API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL缺失——這表示缺少 Visual C 2015-2022 運(yùn)行庫(kù)。安裝vc_redist.x64.exe后仍失敗則用strings libcef.dll | findstr 114.3.1確認(rèn)真實(shí)版本號(hào)重新下載對(duì)應(yīng)cef_binary。4.2 現(xiàn)象網(wǎng)頁(yè)能加載但input typefile點(diǎn)擊無(wú)反應(yīng)或navigator.mediaDevices.getUserMedia()報(bào)NotAllowedError原因CEF 默認(rèn)禁用所有需要用戶授權(quán)的 API且未設(shè)置CefRequestContextSettings中的ignore_certificate_errors true開(kāi)發(fā)階段必需。解決在CefInitialize前添加CefRefPtrCefRequestContext request_context CefRequestContext::CreateContext( new CefRequestContextSettings() ); request_context-GetDefaultRequestContext()-SetPreference( media_stream_mic_send_audio_data, CefValue::CreateBool(true), nullptr );同時(shí)確保CefBrowserHost::CreateBrowserSync()的CefBrowserSettings中web_security設(shè)為false僅限內(nèi)網(wǎng)環(huán)境。4.3 現(xiàn)象MFC 對(duì)話框最小化后恢復(fù)CEF 窗口區(qū)域顯示為黑色或錯(cuò)位原因Windows 消息WM_SIZE未轉(zhuǎn)發(fā)給 CEF導(dǎo)致CefBrowserHost::WasResized()未被調(diào)用渲染緩沖區(qū)尺寸未更新。解決在 MFC 對(duì)話框類的OnSize()中添加void CMyDialog::OnSize(UINT nType, int cx, int cy) { CDialogEx::OnSize(nType, cx, cy); if (m_browser_host) { m_browser_host-WasResized(); // 強(qiáng)制通知 CEF 尺寸變更 } }4.4 現(xiàn)象JS 調(diào)用fetch(http://localhost:8080/api)失敗Network 面板顯示net::ERR_CONNECTION_REFUSED原因CEF 默認(rèn)啟用--enable-featuresNetworkService但某些舊版cef_binary的 Network Service 進(jìn)程與本地 HTTP 服務(wù)端口沖突。解決在CefSettings中禁用 Network Servicesettings.command_line_args_disabled false; CefRefPtrCefCommandLine command_line CefCommandLine::CreateCommandLine(); command_line-AppendSwitchWithValue(disable-features, NetworkService); CefInitialize(main_args, settings, app.get(), command_line.get());4.5 現(xiàn)象程序退出時(shí)崩潰在CefShutdown()堆棧指向v8::Platform::CallOnBackgroundThread原因CefShutdown()被調(diào)用時(shí)仍有未完成的 JS Promise 或setTimeout在后臺(tái)線程運(yùn)行V8 平臺(tái)嘗試回調(diào)已釋放的對(duì)象。解決在CMFCDemoApp::ExitInstance()中增加等待int CMFCDemoApp::ExitInstance() { // 先通知瀏覽器關(guān)閉 if (m_browser_host) { m_browser_host-CloseBrowser(true); // true 表示同步關(guān)閉 // 等待瀏覽器完全銷毀最多 2 秒 for (int i 0; i 200; i) { CefDoMessageLoopWork(); Sleep(10); if (!m_browser_host) break; } } CefShutdown(); // 此時(shí)才安全調(diào)用 return CWinApp::ExitInstance(); }5. 資源加載優(yōu)化與離線部署把index.html打包進(jìn) EXE 資源段的完整鏈路5.1 為什么必須將前端資源嵌入 EXE三個(gè)現(xiàn)實(shí)約束倒逼方案升級(jí)某工業(yè)現(xiàn)場(chǎng)反饋設(shè)備斷網(wǎng)時(shí)CEF 加載file:///C:/app/index.html失敗報(bào)net::ERR_FILE_NOT_FOUND。排查發(fā)現(xiàn)是殺毒軟件將index.html識(shí)別為“可疑腳本”并隔離。而把 HTML/CSS/JS 打包進(jìn) EXE 資源段Resource Segment不僅能規(guī)避文件系統(tǒng)掃描還能實(shí)現(xiàn)“單 EXE 部署”——運(yùn)維人員雙擊即用無(wú)需解壓、無(wú)需擔(dān)心路徑錯(cuò)誤。更重要的是資源段加載走的是 WindowsFindResource/LoadResourceAPI比文件 I/O 快 3~5 倍實(shí)測(cè) 1.2MB 的 Vue SPA 啟動(dòng)時(shí)間從 1800ms 降至 620ms。5.2 資源編譯流程從index.html到RT_HTML類型資源的四步轉(zhuǎn)換第一步在 VS 資源視圖中新建自定義資源類型HTML不是HTML而是手動(dòng)輸入HTML作為資源類型名導(dǎo)入index.html。VS 會(huì)生成類似// Resource.h #define IDR_MAIN_HTML 101 // Resource.rc IDR_MAIN_HTML HTML res\\index.html第二步編寫資源加載函數(shù)關(guān)鍵必須處理 UTF-8 BOMCString LoadHtmlFromResource() { HINSTANCE hInst AfxGetInstanceHandle(); HRSRC hRes FindResource(hInst, MAKEINTRESOURCE(IDR_MAIN_HTML), _T(HTML)); if (!hRes) return _T(); HGLOBAL hGlobal LoadResource(hInst, hRes); if (!hGlobal) return _T(); LPVOID pData LockResource(hGlobal); DWORD dwSize SizeofResource(hInst, hRes); // 關(guān)鍵跳過(guò) UTF-8 BOMEF BB BF if (dwSize 3 *(BYTE*)pData 0xEF *((BYTE*)pData1) 0xBB *((BYTE*)pData2) 0xBF) { pData (BYTE*)pData 3; dwSize - 3; } CString str; str.SetString((LPCTSTR)pData, dwSize / sizeof(TCHAR)); UnlockResource(hGlobal); FreeResource(hGlobal); return str; }第三步修改CefRequestHandler攔截file:///請(qǐng)求并返回資源內(nèi)容bool CefDemoRequestHandler::OnBeforeResourceLoad( CefRefPtrCefBrowser browser, CefRefPtrCefFrame frame, CefRefPtrCefRequest request, CefRefPtrCefRequestCallback callback) { std::string url request-GetURL(); if (url.find(file:///index.html) 0) { // 構(gòu)造響應(yīng) CefRefPtrCefResponse response CefResponse::Create(); response-SetStatus(200); response-SetStatusText(OK); response-SetMimeType(text/html; charsetutf-8); CString html LoadHtmlFromResource(); std::string html_str CT2A(html, CP_UTF8); response-SetHeader(Content-Length, std::to_string(html_str.length())); callback-Continue(response, html_str.c_str(), html_str.length(), false); return true; } return false; }第四步在CefBrowserHost::CreateBrowserSync()中將初始 URL 改為file:///index.htmlCefBrowserHost::CreateBrowserSync( window_info, client.get(), Lfile:///index.html, // 不再用 http:// CefBrowserSettings(), nullptr );提示CT2A(html, CP_UTF8)是關(guān)鍵轉(zhuǎn)換。MFCCString默認(rèn) ANSI但網(wǎng)頁(yè)需 UTF-8。若此處用CT2A(html)默認(rèn)系統(tǒng)編碼中文會(huì)變成亂碼。我們?cè)虼嗽谀畴娏ΡO(jiān)控項(xiàng)目中title實(shí)時(shí)數(shù)據(jù)/title渲染成title????????°???/title耗時(shí) 3 小時(shí)定位。5.3 離線資源完整性校驗(yàn)用 CRC32 防止資源段被篡改工業(yè)設(shè)備常運(yùn)行在無(wú)遠(yuǎn)程維護(hù)的環(huán)境若 EXE 被意外損壞如閃存寫入失敗資源段可能讀出亂碼。我們?cè)谫Y源加載后增加 CRC32 校驗(yàn)// 計(jì)算資源 CRC32使用標(biāo)準(zhǔn) CRC32-IEEE 算法 DWORD CalcCRC32(const BYTE* data, DWORD size) { static const DWORD crc32_table[256] { /* 標(biāo)準(zhǔn)查表數(shù)組此處省略 */ }; DWORD crc 0xFFFFFFFF; for (DWORD i 0; i size; i) { crc (crc 8) ^ crc32_table[(crc 0xFF) ^ data[i]]; } return crc ^ 0xFFFFFFFF; } // 加載后校驗(yàn) CString html LoadHtmlFromResource(); std::string html_str CT2A(html, CP_UTF8); DWORD crc CalcCRC32((const BYTE*)html_str.c_str(), html_str.length()); if (crc ! 0x8A1D2B3C) { // 預(yù)先計(jì)算好的正確 CRC32 值 AfxMessageBox(L前端資源校驗(yàn)失敗請(qǐng)重新安裝軟件); return FALSE; }從那以后我每次打包新版本都強(qiáng)制走一遍certutil -hashfile index.html CRC32生成校驗(yàn)值并更新到代碼中。不是 paranoid是某次現(xiàn)場(chǎng)升級(jí)后客戶說(shuō)“頁(yè)面文字全是方塊”我們遠(yuǎn)程診斷發(fā)現(xiàn)是閃存壞塊導(dǎo)致資源段末尾 2KB 讀取為 0x00——沒(méi)有 CRC 校驗(yàn)這種故障只能靠用戶描述猜有了它第一句話就能確認(rèn)是介質(zhì)問(wèn)題。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99热色这里只有精品| 欧美一级黄片免费播放| 五月综合色| 97在线资源| 男女无套 免费网站| 久久一二三四五六七八九区区| 国产乱不卡| 国产在线激情视频| 日韩精品99久久久久久中文字幕| 草草电影院| 国产精品成人在线| 尤物视频新赏网鲜网色诱网| 在线啊v一区| 日本A级视频| 蜜臀无码视频在线观看| 熟女人妇一区二区三区| 亚洲高清在线se| 亚洲综合另类小说色区亚洲成av人片在www| 日韩一级二级| 亚洲情色 自拍| 精品一区二区成人动漫| 日本精品九九九| 中文字幕乱在线伦视频中文字幕乱码在线| 99操| a片偷拍视频| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 久久性爱视频免费看| 偷拍欧美综合| 欧美黄业| 国产欧美第五页| 中国和日本人色哪个不下载能放| 97爱欧美| 在线观看AV片| 东北女人性交| 色五月大香蕉| 好吊色综合| 欧美另类色图片| 9 1果冻精品视频| 五月婷婷色| 色狠狠一区二区三区香蕉| 人人摸人人叼| 91色香| 操b网站亚洲无码| 亚洲国产精品99久久久| SUV一区二区在线看| 欧美性巨大╳╳╳╳╳高跟鞋| 性生活无遮挡纯毛片在线看| 伊人影院综合是一个与深夜成人在线 | 国产超碰AV在线精品| SS久久| 宅男91视频在线播放| 免费人成毛片乱码| 96超碰网| 德国一二三不卡| 亚洲电影中字一区二区| 色色五月丁香| 国产精品久久久九九九| 国语精品内射在线观看| 任你干在线视频| 国产11页| www.色婷婷色综合| 日本精品第一视频在'| 国产精品ww久久| 懂色av中文字幕| 绯色AV粉色AV蜜臀AV| 欧美18老人禁| 日韩无码操逼片| 国产一区在线播放| yw尤物av无码点击进入麻豆| 久久ww| 国产精品久久久久中文字幕| 国产毛片久久久久久久| 亚洲美女AV无码| 91内射| 2017大香蕉| 久久超碰com| 欧日韩一二三f区| 欧美白嫩在线放| 亚州色国| 97在线观| 国产亚洲精品美女久久久| 久久一区二区三区四区五区| 精品久久久久综合无码| 国产在线综合网| 日韩欧美午夜一区二区| 国产 亚洲 丝袜 制服| 日本熟女中文字幕一区| 日本中文字幕在线视频| 婷婷伊人綜合中文字幕| 亚洲操逼视频网站| 免费看美国人人爽,人人操| 欧美日韩人人早| 九九九九九九九九九五码| 综合色久欲| 9超碰免费| 国产精品熟女九九九| 夜夜精品视频一区二区| 欧美性爱第一页久久| 欧美大香蕉久| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 大色网久久| 五码视频在线观看| 99精品在线观看| 九九九九日本| 91丝袜在线观看| 3P乱轮视频| 99国内精品| 大香樵伊人网| 国产av强奸美女| 性爱综合一区二区| 激情小说日韩无码| 超碰97精品在线| 99re在线视频国产| 午夜AV人气不卡| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 台湾大香蕉99热| 国产精品乱码久久| 亚洲 欧美 天天| 久久久草草精品| 99久国产精品午夜性色福利| AV天天综合| 爱丝福利| www.狠狠| 自拍偷拍 日韩欧美| 免费视频a级毛片免费视频| 综合亚洲欧美精品日韩?v| 乱精品一区字幕二区| 色臀aV| 污污汅18禁网站在线永久免费观看| 性爱av在线免费观看| 国产精品对白内射| 免费福利视频中文字幕| 亚洲图片在线| 开心激情站| 亚洲色图欧美色18直播在线| 人成午夜免费大片| 东京热熟女亚洲视频网站| 观看免费区二区三区二| 97天堂| 97资源超碰| 亚洲欧美第一页| 极品色社| 日本色色视频网站| 天美传媒精品一区二区三区| 五月丁香六月婷综合成人综合| 久久熟女精品不卡一区| 白丝少妇一区二区| 婷婷五月天色色| TS人妖另类精品视频系列| 美腿丝袜高跟网免费视频免费视频| 激情抓乳插进去啪啪啪日韩| 风间由美日韩欧美久久| 99热aaa| 婷婷五月天激情网| 超碰97人人乐| 超碰午夜| 打av高清| 国产女上位好爽在线| 思思性爱| 国产精品熟女九色九色蜜臀| 九九九久久久| 一二三卡欧美日韩人妻免费精品| 97超久碰| 婷婷在线播放| 91九九| 国产成年免费大片黄在线观看| av草草在线电影| 中文字幕亚洲欧美在线不卡| 97在线免费看| 亚洲天堂男人在线| 能直接看AV的网站| 亚洲成?V人片在线观看福利| 肉嘟嘟www视频在线观看高清| 97 国产精品| 大香蕉天天看妹子| 99久久com免费视频′| 成人综合久久精品色婷婷| 91 丝袜在线| 亚洲s在线观看| 无码伊人久久大杳蕉中文无码| 第四色奇米影视777| 老熟妇乱轮| 亚洲男人综合| 高清成年美女黄网站免费大全| 天天草天天日| 日韩欧美国产一区二区三区四区 | 一区e区三| 黄色小说亚洲| 欧美亚洲厕所精品偷拍91| 亚洲综合性感在线| 老女人91| 96精品久久| 一区二区久久天天干狠狠| 日韩AV片| 美女的肌被草喷水视频| 91久久久老司机| 天天躁狠狠躁av| 不卡日本一区二区| 欧美啪啪女女| 天美精品一区二区三区四区在线观看| 国产后入式在线观看| 久艹免费| 东京热一区二区中文字幕| 无码 黑人一区二区三区| 国语av最新自产拍在线观看| 熟女在线视频| 91精品国产综合久久久蜜臀酒店| 最新中文字幕精品在线| 夜夜一区二区| 嗯~啊~快点 死我视频免费看网站| 欧美天天综合站| 蜜臀AV一区二区三区| 日韩精品一区二区日韩| 欧美曰韩国产精品| 亚欧无码线免费观看视频| 超碰成人国产| 蜜桃臀一区二区三区久久| 亚洲日韩在线a不卡99精品| 亚洲AV无码乱码在线观看性色| 91天天日| 在线看的av| 97国产色综合| 亚洲综合20p| 欧美麻豆成人同性GⅤ在线| WWW4虎| 亚州性9| 九月婷婷久久| 97超碰碰| 青青草原狼av| 91丨九色丨国产丨人妻在线 | 国产粉嫩出水在线播放| 蜜桃臀一区二区aV| 亚洲色欲天天人妻无码系列专区| 国产一区二区久久| 51一区二区三区| 加勒比人妻综合| 男人a天堂手机在线版| 少妇内射www在线观看视频| 中文字幕一区二区日韩网| 60秒试看最爽10分钟网站| 另类亚洲一区二区三区| 精品一二三区女同| 人、人、摸,人、人、草| 蜜臀久久99精品久久久久电影| 国产美女高潮叫床视频| 欧美国产婷婷久久| 动漫片子网站3黄| 樱花蜜乳av| 伊人久久亚洲中文字幕不卡| 色噜噜狠狠色综合日日| 国产无码三级视频在线观看| 新97国产超碰| 91精品黄在线观看| 欧美日韩大香蕉| 欧亚揄拍偷拍精品视频| 97色97好| 青青国产精品在线| 超碰99在线| 九九拍拍精品视频在线播放| 超碰久热| 污污汅18禁网站在线永久免费观看| 欧美97爱| 亚洲诱惑天堂| 天天澡天天爽日日av| 男人夜色天堂ss| 国产精品视频一区二区三区八戒| 久久久久久网址| 一级做受视频免费是看美女| 久久免费少妇| 99re这里只有精品2| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 日本色色视频网站| 久久久精品91八戒| 日韩精品中文字幕人妻| 亚洲资源站| 久久亚洲天堂| 亚洲天堂久| 蜜桃丰满熟妇av无码区不卡| 亚洲一本色码中文字幕| 国精综合一二三区影视| 成人色女网| 国产专区路线| 欧美亚洲高清不卡| 久久久久久91香蕉国产| 东北女人的毛片| 97综合日韩| 久久手机视直播| 黄色二级片网站| 人妻少妇久久久| 欧美后进式| 国产按摩一区二区三区| 伊人亚洲国产一成人久久精品,久久| av大香蕉| 婷婷激情一区二区三区俺也去| 丁香六月婷婷综合| 91成人在线| 老司机久久| 91精品人妻啪啪间| 七月婷婷综合| 乱伦熟女专区| 亚洲激情av| 女人的天堂大香蕉网| 亚洲双插| 蜜乳中文字幕a在线| 手机看片日韩人妻| www.夜夜| 成人情色综合网| 91东北熟女| 亚洲黄色网址视频| 欧美香蕉视xxx| 91天天c| 午夜传煤十二区精品| 国产精品白丝www| 国产三级资源在线观看| 97电影院超碰| 91欧美少妇| 久久久久久一日韩字幕无码| 97超碰无码网| 一级二级在线观看| 色婷婷亚洲婷婷| 91激情综合| 亚洲综合嫩| 自拍大香蕉乱插| 国产熟女二区| 国人欧美精品一区二区| 精品无码人妻一区二区免费蜜桃| 久操精品| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 中文字幕精品专区搜索结果91| 深夜激情| 天天干天天做| 欧美性夜| 99热亚洲天堂| 色欲三区| 亚洲日韩欧美一区二区| 国模不卡| 热G综合热G中文| 精品一啪| 97欧美日韩综合| 伊人久久艹| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 黄色免费网| 久久只有精品| 日韩电影天堂视频一区二区| 亚洲综合小视频小说在线观看| yiren97| 长久操视频| 欧美91网站| 亚洲精品国产熟女| 麻豆区久久久久亚| 亚洲天堂人妻熟妇视频| 久久久九| 久久精品老司| 色色五月丁香| 国产Av超碰| 99久热精品99re6热| 98人妻精品一区二区色欲| 熟女色图在线| 动漫爆乳3D奶水一区在线观看 | 亚洲精美粉嫩嫩泬在线观看| 骚女天天综合网| 国产SV一线| 无码操逼网| 大香蕉人妻久久| 青娱乐导航AV| 丁香五月av| 操屄不卡视频| 顶级丝袜熟女一区二区三区| 综合网欧美| 精品人妻一二三四区视频| 国产精品色色| 欧美日韩性爱精品| 亚洲国产ⅴ高清在线观看| 国产精品在线一区二区| 好看的91视频| 综合网欧美在线| 黄片www视频免费| 久久久久久久9999| 天啪| 人妻娇喘 激情视频| 女优视频第10页| 午夜影美女日鸡鸡天天视频国产| 亚熟hd视频在线| 国产91会所女技师在线观看| 欧美一区二区一级岛国大片| 亚洲色图尤物视频| 亚洲欧美日韩精品久| 成人国产精品三级A片| 亚洲三区视频| 欧美日韩中文亚洲v在线综合| 欧美人妻一区| 欧美婷婷| 九九九九九九视频| 一本色道久久综合精品婷婷| 老司机福利青青草| 久草国产在线视频| 婷婷久草一区二区三区| 婷婷九月国产| 岛国黄片网站| 亚洲综合激情五月久久| 制服中出中文人人精品| 九九九成人| 琪琪精品免费一区二区三区 | 久久久久少妇| 日本福利二区视频| 91撸色网 玖玖网 欧美| 日韩欧美久久婷婷网站| 精品无吗m| 先锋色眉乱伦资源| 91暧暧| 国产精品午夜福利| 亚洲九月丁香| 久久这里都是精品| 亚洲小说视频| 丁香五月天激情| 午夜AV污污污| 国产真实野战在线视频| 欧美色图 人妻| PMv在线观看| 日韩精品高清资源在线| 国产高清成人免费视频| 久久婷婷伊人| 97操碰| 91强在线播放| 色五91| 嫩草伊人久久精品| 久久九精品| 亚洲综合伊人无码久久| 麻豆亚洲AV成人无码久久精品| 人人妻人人爽一区二区三区| 99久久久无码精品国产人| 成人欧美一区二区三区黑人一| 熟妇视频一区二区三区在线观看| 成人情色综合网| 日韩免费高清大片在线| 免费视频无码| 国产97在线视频| 性影在线视频| 久久嫩草国产成人一区| 日韩BBN| 东北熟女91| 99热只有这里有精品| 97香蕉人人乳| 国产一区二区三区免费视频在性观看| 欧美视频在线视频免费va| 91狠狠色丁香婷婷综合久久| 在线色资源| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 亚洲精品 大香蕉| 操曰本熟女| av在线播放国产一区| 日韩天堂av电影在线观看| 欧洲精品区| 亚洲精品第一| 91亚洲综合在线| 男人的天堂2010| 2020中文字幕在线观看| 人妻少妇精品一区二区三区| 国产精品不卡高清在线观看| 大香蕉天天看妹子| 中日亚韩免费视频| 久久九九精品一区二区| 欧美在线视频99| 97爱爱| 欧美78| 亚洲欧综合另类无码一区| 久久一区二区加油站| 狠狠操狠狠| 久96热在线观看视频| 91超碰碰在线| 久精品无码av一区二免费国产在线观看| 懂色av中文字幕一区二区三区天美| 强奸a片网| 国产精品人妻无码久久久互動交流| 老熟女熟妇| 91人妻人人澡人人爽人人精品| 中文字幕91综合| 情色大香蕉| 九九成人视频| 亚洲啪AⅤ永久无码| 青青草啪啪网| 99精品视频在线观看| 亚洲人成网站7777| 亚州欧美综合| 亚av顶级裸体一区二区三区四区五区| 欧美在线视频99| 少妇高潮对白在线观看| 国产多人在线观看视频| 精品视频在线观看精品| 欧美色999| 精品在线蜜臀| www.99色| 天天射日日干| 97亚洲欧美| 91夜夜蜜桃臀1区2区3区| 久久婷五月| 欧美性爱精品一区二区| 激情综合网激情五月天| 亚洲免费看片| 综合久久欧美| 美女刺激久久国产欧美| 亚洲美乱| www99热| 欧美精品自慰系列寂寞少妇| 91九九| 亚洲精品视频在线| 成年男人的天堂| 9999亚洲电影| 欧美97超碰| 思思热在线视频免费| 91操熟女视频| 色九九九九九九| 超碰在线免费一区二区三区| 丝袜美腿91| 中国和日本人色哪个不下载能放| 国产精品蜜臀久久久久无码AV| 97bbn| 激情 欧美 亚洲 小说| 蜜臀久久99精品久久久久久久久| 色图综合网| 欧美九9 9 9| 东北女人高潮视频| 日韩AV一区二区三区三州三州| 好色综合| 91劲爆| 色色五月天激情| 久久精品久久久久久久| 东京热一区二区三区四区五区六区| 亚洲学生妹高清av| laoshunv91| 人妻少妇av在线观看| julia国产在线| 中文字幕91综合| 乱伦Av网| 天啪| 久噜噜| 九九热九九热| 精品亚洲国产成人av网站| 九九九九97| 视频在线观看一二三区| 免费精品人妻一区二区三| 99热线麻豆 | 青娱乐休闲视频在线观看| www.高清无码诱惑一区.com| 女人被添高潮免费视频| 日韩精品碰碰| 亚洲情欲| 亚洲欧美综合网 | 人妻一区二区三区视频| 天天操人人操骚逼网站| 翘臀vidoes| 日本三级R| 100啪啪视频大全| 高颜值美女口爆高潮浪叫| 人妻人人澡人人爽人人| 夜夜夜久久| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 色青青久久影视| 国产精品网址| 高清孕妇孕交 交| 97超碰色中文字幕| 久久夜夜夜夜| 亚洲最大黄网| 大香网站| 91天堂色男人的天堂| 中字幕人妻一区二区三区| 日本欧美不卡| 欧美日本不卡在线| 婷婷国产精品一区二区| 亚洲开心网| 日韩在线电影| 91第一页| 欧美爱三级日韩久久| 岛国免费视频在线| 欧美日韩大黄片| 国产亚洲女v在线观看| 欧美一区二区福利在线| 日韩在线性爱免费视频| 国产尤物AV尤物在线观看不卡| 激情无码日韩| 狠狠爱综合网| 激情四射婷婷四五月天| 成年男人的天堂| 一二三四视频在线社区中文字幕| 天天色怡春院| 一级AAA片一区二区三区| 易易A毛视频| 日韩传媒在线| 精…码一二三区| 色逼综合| 综合网~91综合网| 99热色精品| 欧美一级在线观看成人| 日本一级不卡一二区| 精品欧美老熟女一二区| 老熟女综合网| 欧美亚洲中文| 在线人成亚洲视频免费观看| 精品九九九九九九| 天天干18禁| 激情五月综合网| 人人扣人人操| 亚洲成人日韩小说| 操操啪| 天天综合色| 亚洲日韩少妇一道本视频| 新视频sss国产| 欧美综合 站| 欧美激情内射| 免费中文综合精品| 碰碰在线视频| av影院十区| 天天操天天舔| 美女黄码视频午夜| 日韩欧美国产一区二区三区四区| 婷婷综合在线观看| 色与欲影视| 久久精品国产亚洲AV嘿嘿| 丁香五月天社区| 加勒比性爱成人在线| 老熟妇一区二区三区…| 久久偷拍人| 亚洲图片偷拍欧美| 天天色播亚洲综合网站| 啊啊啊啊啊啊啊啊啊在线观看| 国产51色综合久久免费| 久久久久亚洲精品| 久久天天艹| 狠狠做深爱婷婷久久二区| 韩国一级婬片A片无码天美| 夜夜操av亚洲一区二区| 国产亚洲精品精AV.| 草久久久| 无码 有码 国产18p| 乱操9999| 人人色97| 国产啊v在线免费播放| www被窝色com| 涩涩这里只有精品视频| 偷拍新久久| 久热免费视频| 国产成人午夜视频网址| 人人澡人人澡人人| 伊人久久88国产女| 亚洲97在线| 中文字幕片| 岛国网址国产| 麻豆久久精品亚洲精品88 | 亚州欧美综合| 国内91熟女人妻丝袜天天精品视频在线 | 日韩三级视频一区二区三区| 色哟哟AⅤ| 日日骚av| 色欲人妻一区二区在线| 久久这里只精品99re66图| 综合网亚洲| 国产欧美成人精品| 夜夜高潮夜夜爽| 中文字幕亚洲在线一区| 国产欧美精选自拍一区| 欧美在线天堂| 一区二区不卡免费| 欧美猛交黑寡妇中文字幕| 九热视频| 中文字幕成人理论在线| 日韩人妻精品中文字幕| 亚洲另类综合欧美| 福利大香蕉| 性爱视频久久| 日韩性爱高清免费视频| 欧美日韩午夜精品一区二区三区| 97超碰国产亚洲精品| 日本最新免费韩国1区2区视频播放| 日本黄 R色 成 人网站| 新久久AV| 性爱Av免费| 日韩无码精品综合久久| 久久产精品一区二区三区电影| 国产蜜臀在线| 亚洲天天精品| 暴力av在线| 亚洲自拍小说| 欧美美女视频| 亚洲欧美碰碰| 超碰人妻97| 秋霞色色影院| 100啪啪视频大全| 欧美aa一级片| 人人摸人人干人人拍97| 成人性爱视频在线看| 中文字幕中文字幕一区二区| 精品九九国产无码| 亚洲国产高清福利视频| 粉嫩在线一区二区懂色| 91精品大奶人妻| 亚洲精品久| 中文字幕天天操| 少妇久久久免费| 欧美操逼录像国产黄色国产| 久久超碰97中文字幕| 日本久久99| 久久综合婷婷| 美女的肌被草喷水视频| 无码人妻系列少妇| AV中文字幕三四五| 久久久久久久久久va| 18禁网站在线播放| 天天插天天插| 欧美色日本| 亚洲色天堂九9| 中国AV美女| 亚洲一区二区性爱电影| 鸥美精品一区二区久久婷婷| 91欧美偷拍| 无码九九| 岛国片在线播放| www.夜夜操| 日韩中文字幕宗合在线| 1769一区| 中文字幕黑人大片| 超碰97男女| 欧美特黄视频网站| 日日干夜夜骑| 高精欧美色| 一级性爱视频免费在线| 久久偷拍人| 老司机免费视频在线91| 性爱免费视频成人| 日本999精品| 综合大香蕉美。| 欧美伊人久久综合网| 日本一区二区三区四区免费观看| 曰韩av中文字幕专区| 国产suv精品一区二区四| 久久国99999| 97久久视频| 九九热在线精品视频| 日韩ab网| 国产乱伦亚洲色图高清无码| 少妇同性| 综合免费无码中文| 欧美超碰人妻97| 99色热| 亚州91| 啊啊啊啊啊好大好舒服想要| 9丨亚洲一区二区在线| 91总综合网| 逼操网站| 中国特猛少妇色xxx| 天天综合AV| 啪一啪免费视频| 色小视频蜜乳| 成人精品无码| 欧美最大综合网| 久久综合婷婷| 岛国激情视频在线观看| 超碰社区97| 色女网日韩| 黄片无码在线制服| www.亚洲成人一区| 久久超碰天天| 干B视频伊人网| 精品-91人妻子系列| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 尤物视频偷拍免费| 91在线视频免费中出| 性爱1区| 精品人妻丰满熟妇一区二区三| 美美91成人国产精品欧美精品久久久久久久| 成人性爱av.com| 内射小黄片| 久久精品熟妇丰满人妻99| 精精品人妻一区二区三区| 91狠狠综合久久| 欧美色吧综合| 综合九九| 国产成人天堂| wwwxxx日本爽| 色姑娘综合网| 国产第二页| 亚洲男人的天堂亚洲| 综合久久久久久久久91| 亚洲免费97免费| 欧洲自拍第一页| 精品96久久| 欧美国产日韩清纯唯美| 六六久久日韩不卡| 亚洲av无线观看| 一级A片女人高潮叫床| 中国一级特黄大片护士| 奇米四色影视777久久久| 亚洲欧洲自拍图片专区满春格 | 蜜臀久久久国产| 亚洲情色电影网| 日本三级大片| 狠狠操综合| 婷婷九月色| 99久久久久| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 亚欧美色| 一本色道人妻久久| 啊啊啊无码| 日韩97在线| 91人人操| 操逼网站网站| 成年人网站在线免费观看| 免费A片三p视频| 乱伦一二三区| 青椒国产97在线熟女| 亚洲一区二区三区播放在线| 日韩一级特黄av毛片| 99国产精品视频尤物| 人人操人人操人人操人人操人人操人人人11.CM| 成全动漫视频观看免费下载| 天天插夜夜操| 日韩精品 视频一区二区| 1769精品一区二区三区| AV电影在线播放| 国产精品青草综合久久| 五月丁香婷婷色| 无码抄逼网| 天天插天天舔舔天天干| 亚洲国产精品久久久男人的天堂| 日韩专区久久久| 天久久久噜噜噜久久国产精品爽爽 | 国产乱伦亚洲| 发朗少妇买婬全视频中文| 人妻在线臀日韩| 亚洲清纯综合| 免费一级精品啪啪视频| 九月色婷婷| 二级久久网| 91搡老女人老妇女老熟女歌词翻译| 国产狂喷潮在线精品| 在线观看综合精品亚洲| 久久日韩毛| 99久在线精品99re8| 亚洲日韩在线a不卡99精品 | 91青青在线| 久久亚洲欧美中文字幕国语| 操碰97| 国产人伦精品一区二区三区| 日本一二区不卡| 操逼操操操91| 欧美高潮| 天天做日日做天天欢。| 男人精品天堂一区| 成人97人人超碰人人| 超碰97资源大奶| 射综合网| 大香蕉伊人网WWWn0n| 精…码一二三区| 77777亚洲蜜臀精品久久综合蜜臀| 中日992视频| 99色色网| 中文字幕视频二区| 熟女日韩| 久久精品午夜国产亚洲AV无码 | 欧美日韩不卡传媒| 九九九精品美女| 国产美女销魂在线观看不卡| 人妻嗯啊啊在线播放| 亚洲91综合| 免费的黄片有限公司| 夜夜操夜夜爽夜夜高潮| 超碰欧美COM| 婷婷亚洲五月***久久| 国产四虎在线| 91久久青青草原精品| 色屁屁影院www国产| 99免费视频| 老熟乱一区二区三区四区| 1禁看欧美黄片免费看| 国产日韩人人| 好吊色一区| 东京热视频网| 玖玖爱综合| 肉动漫无遮挡h在线观看| 精品网站9999| 精品人妻一区二区三区四区不卡在| 人人操AV| 国产综合久久久麻桃个| 九色 人妻 大香蕉| 后入式999| 激情丁香五月| 国产精品 久久久精品一牛| 久久久久久91香蕉国产| 狠狠中文字幕| 爱丝福利| 精品夜夜澡人妻无码| 精品无码久久久久久久杏吧| 国模不卡一本二本三电影| 秋霞成人一级在线观看| 91中文字幕在线观看| 狼天天狼天天大香蕉| 男人天堂黄片| 国产麻豆91欧美一区二区久久婷婷国产精品| 51久久夜色精品国产麻豆| 2017天天插| 视频二区美腿制服人妻欧美| 国产精品九九| 狠狠爱AV| 天天澡天天爽日日av| 麻豆区99999| www五月| 美国一区二区三区视频| 蜜臀久久99精品久久久| 老熟女91| 97Ai亚洲| 欧美日韩中文字幕人妻| 久久女同性恋一二区| 色5月婷婷| 天天操夜夜嗨| 一级毛片电影免费看| 大白逼三四级| 亚洲日韩狠狠撸视频| 欧美色图亚洲色图成人在在线| 尤物一级在线免费观看| 中文字幕乱码人妻二区三区| 欧美碰碰综合色| 97伦乱| 欧美综合 站| 江都AV在线| 日韩欧美午夜视频在线| 91人妻中文| 日本性爱视频一级| 夜夜天天噜狠狠爱2021| 蜜臀久久99精品久久久久久成人小说 | 黑人娇小av在线播放| 熟女少妇视频| 午夜啊啊| 天天噜| 久久精品日韩| AV不卡在线| 岛国片在线观看视频亚洲| 中文字幕性感少妇av| 人妻99p| 久久精品人体AV| 久久伊人五月天| 狠狠综合| 国产不卡精品91| 爱啪精品一区| 男人干美女| 国产久9| 伊人91| 无码人妻丰满热妇又大又粗| WWW啪啪的com| AAAA级日本片免费视频| 亚洲精品国产精品乱码不99| 亚洲午夜免费狠狠干| 久久9免费视频| 精品国模无码| 精品国产一区二区三区av在线资源| 欧美日韩大陆黑人少妇99| 欲香欲色综合天天伊人| 一区二区视频在线播放| 厕所偷拍在线| 欧美色吧综合| 欧美午夜一区二区三区| 激情综合色| 狠狠爱夜夜干| 视频国产精品未满十八禁止在线观看| 亚洲天堂,男人| 超碰在线日韩一区| 99无码视频| 91久久久久| 激情综合婷婷| 国产欧美日产一区二区三区 - 国产欧美日 | 超碰在线看| 日本二区不卡| 丰满人妻大屁一区二区| 亚洲999综合| 91人人臊| 凹凸 69堂 在线播放| 人妻乱仑一区二区三区| 色哟哟av网址| 亚洲精品人妻吞精av | 日日噜噜夜夜狠狠视频无| 天天日日日射| 国产一区二区三三视频| 五月丁香综合网| 精品蜜乳AV免费观看| 97综合日韩| 精品一区二区综合熟妇| 肉丝无码中文高清| 一,爱啪啪,在线免费视频| 青青草依人大香蕉| 四虎永久在线精品免费网址 | 久久久91福利姬| 五月丁香啪啪网| 久久精品国产精品一区| 人妻激情在线视频| 97福利视频| 麻豆久久精品亚洲精品88| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 六月婷婷五月丁香| 亚洲风情综合网| 国产乱色国产精品免费视| 九色 蝌蚪 熟女自| 国产乱伦性爱AV| 人妻少妇无码| h在线看免费版在线看| 亚洲天堂另类| 99操99| 久久婷婷电影网| 蜜桃臀一区二区aV| 国产免费一区| 久久久久久大| 天天爽天天爽| 国产麻豆福利av在线播放| 性久久久| 亚洲 无码 偷拍| 久久久久久十| 蜜臀久久99'精品久久久| 国精综合一二三区影视| 久久久久久人妻| 免费啪啪一级视频| 久久综合亚洲色1080p| 久操视频在线观看| 四虎精品永久在线播放| 91N综合网| 欧美色图片色哟哟| 变态另类专区| 成人怡红院| 97色综合中文网| 欧美亚洲特P| 国产91 丝袜在线播放 | 青青草日韩无码| 999国产精品999| 人人操人人摸人 | 91精品国产91久久福利| 国产 日韩 欧美一区| 天天色图| 百度百度日本操逼| 92性色国产午夜福利在线661| 亚洲 无码 偷拍| 欧美 日韩 亚洲 春色| 天天操夜夜操狠很操| 黄色一区二区秘书性感| 超碰人人干| 欧美一级三级| 97视频在线观看高清资源| 69人妻精品一区二区绯色| 久久久草成人网站久久久草成人久久久草久久久 | 三级AV入口| 国产中文精品一区二区在线观看| 高清无码 国产精品| 国产女性无套 免费观看| 超碰人妻在线| 日日日啊啊啊| 天天拍天| 亚洲一区日韩精品中文字幕| 男女激烈网站最新| 欧美系列在线一区二区| 天综合网| 欧美色爱综合| 亚洲欧美国产va在线播放频| 男人高清无码一区二区| www.99视频| 天天日美女的B| 精品78| 啪一啪免费视频| 国产精品一区二区在钱播放| 99久在线精品99re8热视频在线| 欧美中日韩XXXX| 一类无码操逼视频| 欧美白嫩女HD| 亚洲久9| 日本午夜久久电影| 九九av| 精品一区二区成人| 一区麻豆 高清中文字幕| yazhououmeizongya| 精品久久人妻成人网| 久久精品老司| 又大又大又大又粗爽高潮观看| 午夜免费视频1000| 97少妇人妻中文字幕久久| 亚洲无码成人精品| 日韩啪啪网| 有码专区最新中文字幕有码| 久久亚洲AV成人精品无码| 青青草视频久久久久| 日韩偷拍一区二区三区| 欧美日日网| 国产内射爽爽大片| 国产视频一区二区在线观看| 日韩欧美午夜一区二区| 伊人五月天激情| 97资源站日韩| 91女神在线视频| 免费看污网站| 五月天激情网站| 麻豆视频test| 91精品成人www| 日本午夜精品理论片A级APP发布| 极品综合| 大二网站亚洲| www.亚洲黄色| 国产亚洲精品一区二区三区| 青青草原成人| 91暧暧| 久久人人爽爽爽人久久久| 色哟哟-国产专区| 日韩精品高清资源在线| 性色高清在线| 国产精品久久久久无码AV会牛| 成人亚欧免费视频| 萌白酱自拍视频| 色色亚洲| 91网站18在线观看| 欧美一区二区情色| 99精品在线观看| 思思热er精品视频| 国产树林里野战在线看| 91肉片| 91美女小视频| 91色人| 久污| 四虎在线视频| 国产搭汕a级片| 狠狠97| 大白逼三四级| 99精品无码| 亚洲国产成人精品女人久久久| 欧美激情亚洲情色| 91情色在线| 91 综合网| 美欧色综合| 人人操,人人液| 亚洲综合电影| 9国产超碰| 黄片qw| 天天谢天天干| 国产在线视视频有精品| 91午夜无码| 顶级丝袜熟女一区二区三区| 91亚州| 欧美激情 一区| 婷婷五月天色网| 亚洲图片在线| 青青操国产夫妻| 美女视频尤物网在线看| 久久精品国产亚洲AV无码做| 色婷婷99| 日韩伦理久 久久 清纯| 国产成人自拍视频在线| 熟女这里只有精品6| 天天射日日干| 伊人网免费视频| 97亚洲欧美| 色色网91| 成人美女av| 色嗨嗨在线| 欧美v亚洲v日韩v最新在线二区| 秋霞免费AV| 成人国产二区三区在线,男女精品。| 久久AV无码1区2区3区| 日本99热| 91老司机在线视频免费观看|