日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

将可执行文件以资源的方式加入到另一个可执行文件并释放

發布時間:2024/4/11 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将可执行文件以资源的方式加入到另一个可执行文件并释放 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

添加資源非常簡單,這里貼出釋放代碼

//創建文件 bool CttDlg::CreateMyFile(CString strFilePath,LPBYTE lpBuffer,DWORD dwSize) {HANDLE hFile = CreateFile(strFilePath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);if (hFile != NULL){//實際寫入到文件的字節數DWORD dwWritten;WriteFile(hFile, (LPCVOID)lpBuffer, dwSize, &dwWritten, NULL);}else{return false;}CloseHandle(hFile);return true; }//創建EXE bool CttDlg::CreateEXE(CString strFilePath,int nResourceID,CString strResourceName) {// 查找所需的資源HRSRC hResInfo = FindResource(NULL, MAKEINTRESOURCE(nResourceID), strResourceName);if (hResInfo == NULL){//MessageBox(NULL, "查找資源失敗!", "錯誤", MB_OK | MB_ICONINFORMATION);return false;}// 獲得資源尺寸DWORD dwSize = SizeofResource(NULL, hResInfo);// 裝載資源HGLOBAL hResData = LoadResource(NULL, hResInfo);if (hResData == NULL){//MessageBox(NULL, "裝載資源失敗!", "錯誤", MB_OK | MB_ICONINFORMATION);return false;}// 為數據分配空間LPBYTE pFileMem = (LPBYTE)GlobalAlloc(GPTR, dwSize);if (pFileMem == NULL){//MessageBox(NULL, "分配內存失敗!", "錯誤", MB_OK | MB_ICONINFORMATION);return false;}// 復制資源數據CopyMemory((LPVOID)pFileMem, (LPCVOID)LockResource(hResData), dwSize); //將內存映射到文件bool bRet = CreateMyFile(strFilePath,pFileMem,dwSize);if(!bRet){GlobalFree((HGLOBAL)pFileMem);return false;}//釋放內存數據GlobalFree((HGLOBAL)pFileMem);return true; }void CttDlg::OnBnClickedOk() {// TODO: 在此添加控件通知處理程序代碼//獲取當前目錄char UpxPath[MAX_PATH];memset(UpxPath,0,MAX_PATH);GetCurrentDirectory(MAX_PATH,UpxPath);//找到fsg壓縮工具strcat(UpxPath,"\\fsg.exe");CreateEXE(UpxPath,IDR_EXE_XUNLEI,"exe");OnOK(); }

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的将可执行文件以资源的方式加入到另一个可执行文件并释放的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。