lpBuffer是指向(二進制)資源的第一個字節的指針。我怎樣才能立即執行它,而不會將其轉儲到臨時文件?直接執行二進制資源
HMODULE hLibrary;
HRSRC hResource;
HGLOBAL hResourceLoaded;
LPBYTE lpBuffer;
hLibrary = LoadLibrary("C:\\xyz.exe");
if (NULL != hLibrary)
{
hResource = FindResource(hLibrary, MAKEINTRESOURCE(104), RT_RCDATA);
if (NULL != hResource)
{
hResourceLoaded = LoadResource(hLibrary, hResource);
if (NULL != hResourceLoaded)
{
lpBuffer = (LPBYTE) LockResource(hResourceLoaded);
if (NULL != lpBuffer)
{
// do something with lpBuffer here
}
}
}
FreeLibrary(hLibrary);
}
事情並不像那樣。你不能只執行已經作爲資源加載的代碼。必須執行重新定位。進口必須解決。 – wj32 2010-08-20 07:58:17
事情可以這樣工作,因此我的「你的格式是什麼」問題。 OP沒有提及二進制資源中的內容。 – 2010-08-20 07:59:53
這是一個exe文件 – Bubblegun 2010-08-20 08:06:33