将一個版本的程式包含到另一個版本(母體)裡面,母體在運作的時候,判斷是不是自己需要的版本,如果是,那麼就運作,如果不是,那麼釋放出包含的那個版本的程式,然後運作釋放出來的程式。
這樣就沒有必要将兩個程式捆綁到一起,隻是把一個程式當作那個母體程式的資源包含到母體程式裡面
建立了一個mfc工程,然後在檢視資源的地方,選擇添加資源,會出現一個對話框,一
個打開檔案對話框,這裡選擇打開一個exe檔案,然後又會出現一個對話框,讓輸入資源的
類型,這裡輸入exe,因為添加的檔案是exe檔案,當然添加的是什麼檔案就要輸入相應的類
型(擴充名),然後資源就會被添加進去,并且vc會自動在左邊打開(二進制的),左邊的
資源預設為IDR_EXE1,然後編寫代碼
HRSRC hrFile = FindResource(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_EXE1), "EXE "); //後面這連個參數很重要
if(hrFile==NULL)
{
AfxMessageBox( "沒有找到資源 ");
}
HGLOBAL hgFile = LoadResource(AfxGetInstanceHandle(),hrFile);
if(hgFile==NULL)
{
AfxMessageBox( "加載資源失敗 ");
}
LPVOID pvFile = LockResource(hgFile);
if(pvFile==NULL)
{
AfxMessageox( "不能加載記憶體 ");
}
HANDLE hfFile = CreateFile( "C://amn.exe ",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
DWORD nFileLength = SizeofResource(AfxGetInstanceHandle(),hrFile);
DWORD nWriteLength;
WriteFile(hfFile,pvFile,nFileLength,&nWriteLength,NULL);
CloseHandle(hfFile);
FreeResource(hrFile);
這樣就會在c:/下面生成一個amn.exe,這個就是當時包含進去的那個exe檔案