生成运行库,并运行它。

来源:互联网 发布:ins是什么软件下载 编辑:程序博客网 时间:2024/05/16 19:20
这是我自己用的,写在备份个代码,从DLL中读取资源文件,并调用安装。
//F安装VC运行库int  installRunTime(HINSTANCE hInstance){//生成安装文件//-------------------------------------------------------------------------HRSRC  hRes = FindResourceEx(hInstance, "BIN", MAKEINTRESOURCE(IDR_VC2013), 0);string ExeName;HRSRC hResLoad;hResLoad = (HRSRC)LoadResource(hInstance, hRes);char* lpResLock;lpResLock = (CHAR*)LockResource(hResLoad);CHAR lpszFileName[MAX_PATH + 10];GetTempPath(sizeof(lpszFileName), lpszFileName);strcat(lpszFileName, "vcr.exe");ExeName = lpszFileName;//DeleteFile(lpszFileName);HANDLE hFile = CreateFile(lpszFileName,GENERIC_WRITE | GENERIC_READ,FILE_SHARE_WRITE,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);if (INVALID_HANDLE_VALUE == hFile) return -1;DWORD len = 6508544;DWORD LenWrite = 0;WriteFile(hFile, lpResLock, len, &LenWrite, 0);;CloseHandle(hFile);//安装//-------------------------------------------------------------CHAR szcommand[1024];wsprintf(szcommand, "%s /passive /quiet", ExeName.c_str());STARTUPINFO si = { sizeof(si) };PROCESS_INFORMATION pi;si.dwFlags = STARTF_USESHOWWINDOW;si.wShowWindow = TRUE; //TRUE表示显示创建的进程的窗口 BOOL bRet = ::CreateProcess(NULL,szcommand,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);return 0;}

0 0