2017-11-23 5 views
0

내 exe 파일에 포함 된 리소스에서 HTML을로드하려고합니다. Windows 8.1에서 C++ 및 CEF3을 사용하고 있습니다.CEF 임베디드 리소스에서 HTML을로드하십시오.

나는 this article을 보았으며 정확하게 찾고있는 것 같지만 CefSharp와 관련이 있습니다.

C++에서 그렇게 할 수있는 방법이 있습니까?

또한 HTML 및 CSS 파일을 포함하는 폴더를 포함하고 CEF로로드 할 수 있습니까?

답변

1

리소스에 파일을 추가 할 수 있습니다. 메모장을 사용하여 프로젝트의 * .rc 파일을 엽니 다. 런타임 동안

123 RCDATA "c:\\source-path\\source-file.htm" 

당신은 어떤 미리 정의 된 값을 사용할 수 있습니다, 예를 #define ID_STRING 1234

열기 리소스 다음 디스크에 복사하거나 데이터를 직접 열 님 * .rc 파일에 다음 줄을 추가합니다. 이 코드는 파일을 디스크에 저장 한 다음 파일 디스크를 열려고 시도합니다.

#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); 
} 

RCDATA10

RT_RCDATA가 완벽 MAKEINTRESOURCE(10)

+0

에 대한 매크로 상수입니다! 대단히 감사합니다 !! – winapiwrapper