lpBuffer est un pointeur sur le premier octet d'une ressource (binaire). Comment puis-je l'exécuter tout de suite sans le jeter dans un fichier temporaire?exécute directement la ressource binaire
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);
}
Les choses ne fonctionnent pas comme ça. Vous ne pouvez pas simplement exécuter du code qui a été chargé en tant que ressource. Les relocalisations doivent être effectuées. Les importations doivent être résolues. – wj32
Les choses pourraient fonctionner comme ça, d'où ma question "quel est votre format". L'OP ne mentionne pas ce qu'il y a dans la ressource binaire. –
C'est un fichier exe – Bubblegun