將一個(gè)版本的程序包含到另一個(gè)版本(母體)里面,母體在運(yùn)行的時(shí)候,判斷是不是自己需要的版本,如果是,那么就運(yùn)行,如果不是,那么釋放出包含的那個(gè)版本的程序,然后運(yùn)行釋放出來(lái)的程序。 這樣就沒(méi)有必要將兩個(gè)程序捆綁到一起,只是把一個(gè)程序當(dāng)作那個(gè)母體程序的資源包含到母體程序里面 新建了一個(gè)mfc工程,然后在查看資源的地方,選擇添加資源,會(huì)出現(xiàn)一個(gè)對(duì)話框,一 個(gè)打開(kāi)文件對(duì)話框,這里選擇打開(kāi)一個(gè)exe文件,然后又會(huì)出現(xiàn)一個(gè)對(duì)話框,讓輸入資源的 類(lèi)型,這里輸入exe,因?yàn)樘砑拥奈募莈xe文件,當(dāng)然添加的是什么文件就要輸入相應(yīng)的類(lèi) 型(擴(kuò)展名),然后資源就會(huì)被添加進(jìn)去,并且vc會(huì)自動(dòng)在左邊打開(kāi)(二進(jìn)制的),左邊的 資源默認(rèn)為IDR_EXE1,然后編寫(xiě)代碼 HRSRC hrFile = FindResource(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_EXE1), "EXE "); //后面這連個(gè)參數(shù)很重要 if(hrFile==NULL) { AfxMessageBox( "沒(méi)有找到資源 "); } HGLOBAL hgFile = LoadResource(AfxGetInstanceHandle(),hrFile); if(hgFile==NULL) { AfxMessageBox( "加載資源失敗 "); } LPVOID pvFile = LockResource(hgFile); if(pvFile==NULL) { AfxMessageox( "不能加載內(nèi)存 "); } 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); 這樣就會(huì)在c:/下面生成一個(gè)amn.exe,這個(gè)就是當(dāng)時(shí)包含進(jìn)去的那個(gè)exe文件 頂0踩
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注