如何用VC制作一个单机升级包? vc 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己做一个a.exe,然后把其他文件跟exe等用7zip打包。设置运行a.exe 提醒:正使用的dll或exe可以改名。 1、以exe名称到进程列表中去遍历,如果正在运行,则TerminateProcess;2、升级文件可以打包成zip包添加到升级exe程序的资源中,运行升级exe程序时,从资源中读出来,然后再解压出来,再执行部分文件的替换功能(如果有文件被占用,可能要执行重启后替换) 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 dll被加载到内存为了共享有点疑问 vc给定点画图? Add Windows Message Handler不见了,怎么重心加上去? blockquote 問題 关于VC调试多线程的死锁问题? 一个字符串右对齐问题 由于是在一个ATL对话框中使用双缓冲,我不得不处理ERASEBKG那个事件取消默认得刷子,但..... 如何动态设置cedit中可输入数据的长度呢 请教各位高手:有关在vc中实现统计图的问题! 菜鸟求救:怎么显示错误信息? 0xcccccccc 处未处理的异常: 0xC0000005: Access violation CMFCToolBar动态改变按钮文字
2、升级文件可以打包成zip包添加到升级exe程序的资源中,运行升级exe程序时,从资源中读出来,然后再解压出来,再执行部分文件的替换功能(如果有文件被占用,可能要执行重启后替换)
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