將一個版本的程序包含到另一個版本(母體)里面,母體在運行的時候,判斷是不是自己需要的版本,如果是,那么就運行,如果不是,那么釋放出包含的那個版本的程序,然后運行釋放出來的程序。 這樣就沒有必要將兩個程序捆綁到一起,只是把一個程序當作那個母體程序的資源包含到母體程序里面 新建了一個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文件 頂0踩
新聞熱點
疑難解答