AS 3.0 (x86) W2K - nefunguje UnRAR plugin

Hlášení chyb a problémů programu Altap Salamander. Buďte, prosím, ve svých popisech co nejpodrobnější a vytvořte pro každý incident nový příspěvek. Nevkládejte programem generovaná hlášení o pádu programu, pošlete je e-mailem.
mulderot
Posts: 3
Joined: 24 Apr 2014, 17:09

AS 3.0 (x86) W2K - nefunguje UnRAR plugin

Post by mulderot »

32bit. verze AS 3.0 (upgrade z 2.54 i nová instalace) má ve Win2000 problém s natažením pluginu UnRAR.
Oba soubory unrar.dll (218712 B) a unrar.spl (41472 B) jsou samozřejmě v adresáři /plugins/unrar/
Ve verzi 2.54 to normálně fungovalo (vím, že tam byla starší verze unraru - zkoušel jsem, jestli AS 3.0 náhodou nepojede alespoň s unrarem z AS 2.54, a náhodou nejede: Error 126).
Dalo by se s tím něco udělat (v dané konfiguraci)? Díky.
unrar1.png
unrar1.png (2.79 KiB) Viewed 6595 times
unrar2.png
unrar2.png (3.1 KiB) Viewed 6595 times
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: AS 3.0 (x86) W2K - nefunguje UnRAR plugin

Post by Jan Rysavy »

Používáme originální unrar.dll z distribuce WinRAR, který již nepodporuje Windows 2000. Zkusíme prozkoumat, zda je šance přeložit vlastní W2K kompatibilní verzi.

Můžu se zeptat, na co ještě používáte Windows 2000? Musí to být docela problematické z hlediska aktualizací software, dneska už W2K skoro nikdo nepodporuje a to včetně překladačů. Kdyby nebyla podpora W2K v případě Salamandera zadarmo (protože chceme podporovat XP bez SP, takže jsme s překladem uvězněni na VS2008), už jsme o zrušení W2K podpory uvažovali.

V AS 3.0 jsme přerušili kompatiblitu pluginů s 2.5x, takže to jste neměl šanci. Došlo ke změně překladače, zavedení podpory pro x64, atd.

Edit: takže jsem unrar.dll pod W2K prozkoumal pomocí nástroje Dependency Walker a zde je výsledek:
missingexport.png
missingexport.png (21.47 KiB) Viewed 6581 times
Problém je ve funkci TzSpecificLocalTimeToSystemTime, kterou unrar.dll nyní používá a která existuje až od Windows XP:

Code: Select all

void RarTime::SetLocal(RarLocalTime *lt)
{
#ifdef _WIN_ALL
  SYSTEMTIME st;
  st.wYear=lt->Year;
  st.wMonth=lt->Month;
  st.wDay=lt->Day;
  st.wHour=lt->Hour;
  st.wMinute=lt->Minute;
  st.wSecond=lt->Second;
  st.wMilliseconds=0;
  FILETIME lft;
  if (SystemTimeToFileTime(&st,&lft))
  {
    lft.dwLowDateTime+=lt->Reminder;
    if (lft.dwLowDateTime<lt->Reminder)
      lft.dwHighDateTime++;

    // Reverse procedure which we do in GetLocal.
    SYSTEMTIME st1,st2;
    FileTimeToSystemTime(&lft,&st2);
    TzSpecificLocalTimeToSystemTime(NULL,&st2,&st1);
    FILETIME ft;
    SystemTimeToFileTime(&st1,&ft);

    *this=ft;
  }
  else
    Reset();
#else
  struct tm t;

  t.tm_sec=lt->Second;
  t.tm_min=lt->Minute;
  t.tm_hour=lt->Hour;
  t.tm_mday=lt->Day;
  t.tm_mon=lt->Month-1;
  t.tm_year=lt->Year-1900;
  t.tm_isdst=-1;
  *this=mktime(&t);
  itime+=lt->Reminder;
#endif
}
mulderot
Posts: 3
Joined: 24 Apr 2014, 17:09

Re: AS 3.0 (x86) W2K - nefunguje UnRAR plugin

Post by mulderot »

Díky za analýzu, tušil jsem, že to nějak tak bude.
Vím, že unrar.dll je originální verze i že došlo ke změně překladače, takže pravděpodobnost, že by fungoval plugin z AS 2.54 nebyla moc velká, ale zkusil jsem.
W2K mám jen kvůli udržení runtime prostředí, právě proto, že to ještě někteří stále používají... ;-)
Naprosto chápu Vaše důvody pro přerušení zpětné kompatibility, zejména pokud se v projektu používají tuny knihoven třetích stran.
Je to v podstatě marginální problém, můžu zůstat u verze 2.54, která je pro moje účely zcela vyhovující nebo volat ten RAR externě.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: AS 3.0 (x86) W2K - nefunguje UnRAR plugin

Post by Jan Rysavy »

Kontaktoval jsem autory WinRAR, jestli o problému vědí a zda by případně přijali patch s opravou.

Patch tu máme připravený, takže by nemělo být problém s AS 3.01 přibalit W2K kompatibilní unrar.dll.

Pokud máte zájem si DLL přeložit sám již nyní pro AS 3.0, můžu dodat podrobnosti.
mulderot
Posts: 3
Joined: 24 Apr 2014, 17:09

Re: AS 3.0 (x86) W2K - nefunguje UnRAR plugin

Post by mulderot »

Díky za ochotu a rychlost, počkám na AS 3.01.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: AS 3.0 (x86) W2K - nefunguje UnRAR plugin

Post by Jan Rysavy »

Jen pro info: Eugen Roshal (autor RAR) se ozval ohledně W2K kompatibility. Již nechtějí W2K podporovat a doporučil nám vlastní verzi unrar.dll. To jsme udělali a ve verzi 3.01 je UnRAR plugin kompatibilní s W2K.
Post Reply