Esecuzione di un autoestraente non completa correttamente

Supporto per i programmatori che impiegano il formato RAR o i relativi prodotti

Moderatore: Andrea

Rispondi
EmmeGi

Esecuzione di un autoestraente non completa correttamente

Messaggio da EmmeGi » 27 nov 2003, 19:15

Salve
ho creato un package di installazione con un archivio autoestraente Win32 da circa 4 Gb. All'interno di una mia procedura lancio il programma perchè scompatti il contenuto e, come da documentazione di Win32, attendo con una WaitForSingleObject che venga segnalata la fine dell'esecuzione del programma. La struttura dati che uso è quella ritornata da CreateProcess.
In sostanza, l'autoscompattante di Winrar sembra non terminare in maniera "pulita", lasciando il mio installer in uno stato di attesa sul semaforo. Con altri eseguibili la procedura funziona correttamente, solo l'autoscompattante Win32 di Winrar, configurato per non mostrare alcuna interfaccia, crea il problema.
E' un bug riconosciuto per il quale c'è uno workaround?
Per motivi di tempo ho adottato una soluzione differente, ma essendo utente Winrar vorrei continuare ad usarlo, qualcuno mi aiuta?
Grazie

Andrea
Site Admin
Messaggi: 371
Iscritto il: 14 mag 2002, 18:52
Località: Bergamo
Contatta:

Re: Esecuzione di un autoestraente non completa correttament

Messaggio da Andrea » 28 nov 2003, 00:37

EmmeGi ha scritto:Per motivi di tempo ho adottato una soluzione differente, ma essendo utente Winrar vorrei continuare ad usarlo,
Non ho competenze precise in merito e quindi provo a girare il problema all'autore.
Ma visto che sei un programmatore perché non utilizzi la DLL, gratuita, che ti permette proprio di gestire la scompattazione direttamente dal tuo programma, senza chiamate esterne?
Tra l'altro così facendo risparmieresti anche lo spazio occupato dal modulo auto-estraente, non più necessario; è vero che sono solo poche decine di KB e rispetto ai tuoi 4G sono un nulla. :wink:
Se ho risposta ti faccio sapere.
Cordialmente,

Andrea
Supporto WinRAR.it

Andrea
Site Admin
Messaggi: 371
Iscritto il: 14 mag 2002, 18:52
Località: Bergamo
Contatta:

Re: Esecuzione di un autoestraente non completa correttament

Messaggio da Andrea » 28 nov 2003, 22:47

EmmeGi ha scritto:ho creato un package di installazione con un archivio autoestraente Win32 da circa 4 Gb.
Ecco che m'ha risposto Eugene:
  • So large SFX archives is a twilight zone :-) It is not a problem for
    WinRAR to create or unpack SFX archive of any size, but I am not sure
    that all Windows versions will handle so huge executables 100% correct.
    For example, some users reported that their Windows stops to display
    SFX icon in case of 700MB or more SFX archive, though my XP displayed
    it properly.

    I do not think that it is SFX bug. Maybe it is something wrong
    in his implementation. In case of C++, I think, it should be like:

    Codice: Seleziona tutto

    bool Execute(const char *Command,const char *CurDir,int TimeToWait)
    {
      STARTUPINFO si;
      PROCESS_INFORMATION pi;
      memset(&si,0,sizeof(si));
      si.cb=sizeof(si);
      if (CreateProcess(NULL,(char *)Command,NULL,NULL,FALSE,0,NULL,CurDir,&si,&pi))
      {
        if (TimeToWait!=0)
          WaitForSingleObject(pi.hProcess,TimeToWait);
        CloseHandle(pi.hThread);
        CloseHandle(pi.hProcess);
        return(true);
      }
      return(false);
    }
Cordialmente,

Andrea
Supporto WinRAR.it

EmmeGi

SFX Grandi dimensioni

Messaggio da EmmeGi » 10 dic 2003, 16:10

Grazie per la risposta, comunque:
1) Il codice è corretto e corrisponde alla mia implementazione
2) In effetti sul file l'icona dell'autoestraente NON è visibile

Ho un altro paio di eseguibili della stessa dimensione che non hanno problemi (non sono WinRar sfx).
Grazie

Andrea
Site Admin
Messaggi: 371
Iscritto il: 14 mag 2002, 18:52
Località: Bergamo
Contatta:

Re: SFX Grandi dimensioni

Messaggio da Andrea » 12 dic 2003, 08:59

EmmeGi ha scritto:Ho un altro paio di eseguibili della stessa dimensione che non hanno problemi (non sono WinRar sfx).
Il problema è che Eugene non riesce a riprodurre il problema...
Vedo se magari vuol generare un programmino che poi eseguirai tu e che fornisca un report...
Tu il problema l'hai con quali Sistemi Operativi? E con quali File System?
Cordialmente,

Andrea
Supporto WinRAR.it

Emmegi

Messaggio da Emmegi » 19 dic 2003, 17:01

Non è un problema, ho risolto in altro modo.
Resta inetressante capire se il problema è di Winrar o di Windows (stesso comportamento su XP-Pro, XP-Home, 2000 Pro.
Grazie

Andrea
Site Admin
Messaggi: 371
Iscritto il: 14 mag 2002, 18:52
Località: Bergamo
Contatta:

Messaggio da Andrea » 20 dic 2003, 18:02

Emmegi ha scritto:Non è un problema, ho risolto in altro modo.
Meglio così.
Emmegi ha scritto:(stesso comportamento su XP-Pro, XP-Home, 2000 Pro.
Stesso comportamento su FAT-32 e su NTFS?
Cordialmente,

Andrea
Supporto WinRAR.it

Rispondi