1
我的目標是將.exe
文件包裝到另一個.exe
文件中。每當啓動包裝器.exe
時,應啓動嵌入式.exe
。 我已經將二進制文件添加爲資源。 現在我想將文件作爲tmp文件加載,並使用system()
函數或其他替代方法來執行二進制文件。但是,我無法獲取tmpfile的文件名。我不能使用tmpnam,因爲它只會返回一個文件名,但不會創建實際的臨時文件。在C++中執行二進制tmpfile
我迄今爲止代碼:
#include <iostream>
#include <windows.h>
#include <stdio.h>
using namespace std;
int main()
{
HRSRC hRes = FindResource(0, MAKEINTRESOURCE(1), RT_RCDATA);
HGLOBAL hMem = LoadResource(0, hRes);
void* pMem = LockResource(hMem);
DWORD size = SizeofResource(0, hRes);
FILE * f = tmpfile();
fwrite(pMem, size, 1, f);
fclose(f);
return 0;
}
請你幫幫我。 謝謝。
爲什麼你需要這個計劃作爲資源嵌入?除了主程序之外,你不能簡單地安裝嗎? –
您正在使用WinAPI,因此您可以使用GetTempFileName()+ GetTempPath()來生成臨時文件名。然後使用生成的文件名爲fopen()創建文件以進行二進制寫入。然後使用你的fwrite()+ fclose()。然後ShellExecute()用於運行應用程序 – grisha