我想从我的exe文件中嵌入的资源加载HTML。我在Windows 8.1上使用C ++和CEF3。
我已经看过this article,这似乎正是我所寻找的,但它与CefSharp有关。
有没有办法用C ++做到这一点?
另外,我可以嵌入包含HTML和CSS文件的文件夹并使用CEF加载吗?
答案 0 :(得分:1)
您可以向资源添加任何文件。用记事本打开项目的* .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)