1、把压缩文件注入到安装程序。

duilib 做安装程序

2、从资源文件里面读取.zip包,解压到指定目录。

    ////读取打包文件
    CResourceManager::GetInstance();
    HRSRC hrSrcSys = FindResource(CPaintManagerUI::GetInstance(),L"154", RT_RCDATA);  
    HGLOBAL hGlobalSys = LoadResource(CPaintManagerUI::GetResourceDll(), hrSrcSys );  
    LPVOID lpGlobalSys = LockResource( hGlobalSys );  
    UINT sourLen = SizeofResource(CPaintManagerUI::GetResourceDll(), hrSrcSys) ;
    DWORD writelen = 0;
    HANDLE hFile =CreateFile(cstrZipFileName.GetBuffer(), GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

    if (hFile != INVALID_HANDLE_VALUE)
    {
        WriteFile(hFile,lpGlobalSys,sourLen,&writelen,NULL);
        CloseHandle(hFile);
    }else{
        writelen = GetLastError();
    }    

    ::FreeResource( hGlobalSys );  

    SetCurrentDirectory(pobj->m_cstrInstallPath);
    HZIP hz = OpenZip (cstrZipFileName.GetBuffer(),0);
    ZIPENTRY ze;
    GetZipItem (hz, -1 , &ze);
    int numitems = ze.index;
    for (int i = 0; i < numitems; i++){
        GetZipItem (hz, i, &ze);
        if(ze.attr==0x91){
            _wmkdir(ze.name);
        }

        int ret=UnzipItem(hz, i, ze.name);
        if(ret!=0){
            printf("ret:%d file:%s %x\r\n",ret,ze.name,ze.attr);
        }
        else{
            printf("ret:%d file:%s %x\r\n",ret,ze.name,ze.attr);
        }

        if (ze.attr!=145&&SetFileAttributes (ze.name, FILE_ATTRIBUTE_ARCHIVE) == 0)//设置文件属性为存档
        {
            printf("set file chmod error!\r\n");
        }
    }

    CloseZip (hz);

 

3、创建桌面快捷方式,启动项等。

 

4、写卸载信息。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
  • 2021-06-16
  • 2021-11-07
  • 2022-12-23
  • 2021-06-21
  • 2021-11-28
猜你喜欢
  • 2021-08-25
  • 2022-12-23
  • 2022-12-23
  • 2021-09-01
  • 2021-06-14
  • 2021-05-16
  • 2022-01-02
相关资源
相似解决方案