Как запустить exe файл из ресурсов не записывая его на диск?

У меня в ресурсах есть исполняемый(.exe) файл. Надо нужно запустить из под самой программы, не записывая его на диск. Мой код main.cpp:

#include <iostream>
#include <Windows.h>
#include "resourse.h"

HMODULE GCM()
{
    HMODULE hModule = NULL;
    GetModuleHandleEx(
        GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
        (LPCTSTR)GCM,
        &hModule);
    return hModule;
}

int main(int argc, char** argv) {
    std::string result;
    HRSRC hRes = FindResource(GCM(), MAKEINTRESOURCE(DEMO), MAKEINTRESOURCE(RCDATA));
    HGLOBAL hData = LoadResource(GCM(), hRes);
    DWORD hsize = SizeofResource(GCM(), hRes);
    char* hfinal = (char*)LockResource(hData);
    result.assign(hfinal, hsize);

    std::cout << result << std::endl;
}

resource.h:

//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by c sharp in s++.rc

// Следующие стандартные значения для новых объектов
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        101
#define _APS_NEXT_COMMAND_VALUE         40001
#define _APS_NEXT_CONTROL_VALUE         1001
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif

#define DEMO 255
#define RCDATA 254

resource.rc:

include "resourse.h"

DEMO RCDATA "Res\\demo.exe"

Прошу сильно не ругаться, просто не понимаю как работать с ресурсами.


Ответы (0 шт):