我想从我的 exe 文件中嵌入的资源加载 HTML。我在 Windows 8.1 上使用 C++ 和 CEF3。
我看过 this article它似乎正是我要找的东西,但它与 CefSharp 有关。
有没有办法用 C++ 做到这一点?
另外,我可以嵌入一个包含 HTML 和 CSS 文件的文件夹并使用 CEF 加载它吗?
最佳答案
您可以将任何文件添加到资源中。用记事本打开项目的 *.rc 文件。将以下行添加到 *.rc 文件:
123 RCDATA "c:\\source-path\\source-file.htm"
您可以使用任何预定义的值,例如 #define ID_STRING 1234
在运行时打开资源,然后复制到磁盘或直接打开数据。此代码将尝试将文件保存到磁盘,然后打开文件磁盘。
#include <Windows.h>
#include <fstream>
void foo()
{
HRSRC hrsrc = FindResource(NULL, MAKEINTRESOURCE(123), RT_RCDATA);
if(!hrsrc)
{
MessageBoxW(0, L"resource `123 RCDATA` not found", 0, 0);
return;
}
HMODULE hmodule = 0;
HGLOBAL hglobal = LoadResource(hmodule, hrsrc);
void *data = LockResource(hglobal);
DWORD size = SizeofResource(hmodule, hrsrc);
const wchar_t* filename = L"c:\\temp\\testout.htm";
std::ofstream fout(filename, std::ios::binary);
if(!fout)
{
MessageBoxW(0, L"Cannot make temp file", 0, 0);
return;
}
fout.write((char*)data, size);
fout.close();
ShellExecuteW(0, NULL, filename, NULL, NULL, SW_SHOW);
}
RCDATA
是常量 10
RT_RCDATA
是 MAKEINTRESOURCE(10)
关于c++ - CEF 从嵌入式资源加载 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47462861/