gpt4 book ai didi

mfc - CefInitialize 无法在 mfc dll 中工作

转载 作者:行者123 更新时间:2023-12-01 18:14:34 30 4
gpt4 key购买 nike

我想在 mfc dll 中使用 Chromium 嵌入式框架。因此,我创建了一个 mfc 测试 exe 并测试了 cef 的简约实现(有效)。我的下一步是使用测试 mfc dll 执行完全相同的操作。代码几乎相同,但是cef浏览器窗口不会出现。

应用程序卡在 CefInitialize() 中并且不会返回。经过调试,我发现它卡在了 WaitForSingleObject/WaitForMultipleObject windows api 中。

BOOL CMyBrowserDllApp::InitInstance()
{
HINSTANCE hInstance = GetModuleHandle(NULL);

CefMainArgs main_args(hInstance);

CefSettings settings;
settings.no_sandbox = true;
settings.multi_threaded_message_loop = true;

// Execute the secondary process, if any.
int exit_code = CefExecuteProcess(main_args, cefApplication.get(), NULL);
if (exit_code >= 0)
return exit_code;

if(!CefInitialize(main_args, settings, cefApplication.get(), NULL))
{
OutputDebugStringA("Error: CefInitialize failed");
}else
OutputDebugStringA("Info: CefInitialize succeeded");

CWinApp::InitInstance();

return TRUE;
}

如果直接在 mfc exe 中使用,相同的实现也可以工作。

最佳答案

GetModuleHandle 返回 exe 的基址,而不是 dll。您可能想要隐藏来自以下位置的 dll 库:

BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, void *reserved) 

关于mfc - CefInitialize 无法在 mfc dll 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25404897/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com