解决方案 »

  1.   

    自己做一个a.exe,然后把其他文件跟exe等用7zip打包。设置运行a.exe
      

  2.   

    提醒:正使用的dll或exe可以改名。
      

  3.   

    1、以exe名称到进程列表中去遍历,如果正在运行,则TerminateProcess;
    2、升级文件可以打包成zip包添加到升级exe程序的资源中,运行升级exe程序时,从资源中读出来,然后再解压出来,再执行部分文件的替换功能(如果有文件被占用,可能要执行重启后替换)
      

  4.   

    1、至于如何从工程的资源中读出zip包,参见:http://blog.csdn.net/chenlycly/article/details/31734147
        void CProcessLogic::ExportResFile( CString strExportPath )  
        {     
            // 导出system.zip  
            CString strSysDir = strExportPath + _T("system.zip");  
            HRSRC hrSrcSys = FindResource( AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_ZIP_SYSDIR), _T("ZIP") );  
            HGLOBAL hGlobalSys = LoadResource( AfxGetResourceHandle(), hrSrcSys );  
            LPVOID lpGlobalSys = LockResource( hGlobalSys );  
           
            ret = 0;  
            if( ret = file.Open( strSysDir, CFile::modeCreate | CFile::modeWrite) )  
            {  
                file.Write( lpGlobalSys, (UINT)SizeofResource(AfxGetResourceHandle(), hrSrcSys) );  
                file.Close();  
            }  
          
            ::UnlockResource(hGlobalSys);  
            ::FreeResource( hGlobalSys );  
        }  2、关于加压zip包,要用到网上常用开源的解压源码unzip