Page 1 of 2

Co třeba neoficiální SDK

Posted: 27 Apr 2007, 17:29
by Datalog
Tak 2.5 je venku.

Nepoodhrnete roušku tajemství a nepustíte ven pár neoficiálních textů SDK, API? Zdůrazňuji neoficiálních.

Vím, že už to zde bylo několikrát žádáno a zamítnuto. Ale předpokládám, že nově vytvářené pluginy by mohly být alespoň částečně zpětně kompatibilní s právě 2.5kou. Takže když nějaké drobné informace pustíte ven, už by zde nemusel být problém kompatibility.

Posted: 27 Apr 2007, 17:35
by Datalog
Mimochodem. Neobtěžoval bych, kdyby v aktualizované roadmap nebylo až do vánoc 07 plno jinými úkoly.

Posted: 27 Apr 2007, 20:37
by Jan Rysavy
SDK vydáme hned po víkendu. Bohužel bez pořádné dokumentace a s komentáři pouze v češtině, ale už chceme, abyste ho měli k dispozici.

Posted: 27 Apr 2007, 20:52
by Datalog
Jan Rysavy wrote:SDK vydáme hned po víkendu.
:-*
Jan Rysavy wrote:Bohužel bez pořádné dokumentace a s komentáři pouze v češtině, ...
Klídek, to zvládneme, zbastlíme, v EN sekci (někteří s omezením chabých jazykových znalostí :oops: ) poradíme co se dá.

Posted: 27 Apr 2007, 21:11
by Jan Rysavy
Pro čechy to použitelné bude, ale pro cizince to bude skutečně chtít přeložit do angličtiny. Kdybychom to dělali před vydáním SDK, zase by ho to odsunulo a odsunulo by to Salamandera.

Tomáš Kopal rozběhne WiKi. Máme tušení, že by se mohla (nejen) v souvislosti s SDK velice hodit.

Mimochodem, máte někdo dobré zkušenosti s nějakým dokumentačním systémem typu DOC++?

Zatím celá "dokumentace" vypadá takto:

Code: Select all

    // odstraneni adresare vcetne jeho obsahu (SHFileOperation je priserne pomaly)
    // mozne volat z libovolneho threadu
    virtual void WINAPI RemoveTemporaryDir(const char *dir) = 0;

    // protoze windowsova verze MoveFile nezvlada prejmenovani souboru s read-only atributem na Novellu,
    // napsali jsme si vlastni (nastane-li chyba pri MoveFile, zkusi shodit read-only, provest operaci,
    // a pak ho zase nahodit); vraci uspech (pri neuspechu vraci v 'err' (neni-li NULL) kod Windows chyby)
    // mozne volat z libovolneho threadu
    virtual BOOL WINAPI SalMoveFile(const char *srcName, const char *destName, DWORD *err) = 0;
Asi bychom to měli překlopit do nějakého použitelnějšího tvaru...

Posted: 27 Apr 2007, 21:45
by Datalog
Jan Rysavy wrote:Asi bychom to měli překlopit do nějakého použitelnějšího tvaru...
Z té ukázky mi to připadá naprosto pochopitelné a dostatečně použitelné. Vždyť to má i komentáře. :)

DOC++ se omlouvám, nemohu sloužit.

Posted: 28 Apr 2007, 00:47
by zarevak
Jan Rysavy wrote:Mimochodem, máte někdo dobré zkušenosti s nějakým dokumentačním systémem typu DOC++?
DOC++ neznám. Asi bych radši použil Doxygen, který mi z jejich webu přijde spravovanější a i používá hežčí syntax komentářů vycházející z JavaDoc, který je rozumně čitelný i lidmi :wink:
Jan Rysavy wrote:Asi bychom to měli překlopit do nějakého použitelnějšího tvaru...
Verze v JavaDoc pro Doxygen (nektere komentare jsem si domyslel):

Code: Select all

/** Odstraneni adresare vcetne jeho obsahu
 * Odstraneni adresare vcetne jeho obsahu (SHFileOperation je priserne pomaly)
 *
 * Mozne volat z libovolneho threadu
 *
 * @param dir          Cesta k adresari. Nemusi obsahovat koncove \.
 *                     Pokud je NULL, tak funkce nic nedela.
 * @return void
 */
virtual void WINAPI RemoveTemporaryDir(const char *dir) = 0;

/** Prejmenovani souboru s osetrenymi problemy
 * Protoze windowsova verze MoveFile nezvlada prejmenovani souboru s read-only atributem na Novellu,
 * napsali jsme si vlastni (nastane-li chyba pri MoveFile, zkusi shodit read-only, provest operaci,
 * a pak ho zase nahodit); 
 *
 * Mozne volat z libovolneho threadu
 * 
 * @param srcName      Zdrojovy nazev souboru. Pokud soubor neexistuje, tak problem.
 *                     Pokud je NULL, tak funkce nic nedela.
 * @param destName     Cilovy nazev souboru. Nesmi byt NULL
 * @param err          kod Windows chyby v pripade neuspechu
 * @return BOOL        <code>true</code> pokud byl soubor prejmenovan; 
 *                     <code>false</code> pokud nejaky problem - zkontrolujte err.
 */
virtual BOOL WINAPI SalMoveFile(const char *srcName, const char *destName, DWORD *err) = 0;

Posted: 28 Apr 2007, 09:08
by k0nelupy
Sláva děkujeme za 2.5 i za SDK

jinak v http://www.altap.cz/salam_cz/newver.html
se píše že Jádro Altap Salamandera :

* První verze Altap Salamander 2.5 SDK pro vývojáře pluginů.
předpokládám tedy že to platí až po víkendu
neboť jsem nikde v jádru nic ukrytého nenašel :-)

Pro mne tedy rozhodně lepší takto krásně komentováno než nějaký učesaný překlad do angličtiny. Aspoň budeme mít před anglánama náskok :-)

Posted: 28 Apr 2007, 09:16
by Jan Rysavy
Ano, jak píšu nahoře: po víkendu :)

Počítejte prosím s tím, že pomocí SDK bude možné realizovat pluginy podobné těm existujícím (prohlížeče, archivátory a případně file systémy). Nepřidáte do Salamandera třetí panel, nevložíte do panelu QuickView, atd.

Posted: 28 Apr 2007, 09:37
by Datalog
k0nelupy wrote:... jinak v http://www.altap.cz/salam_cz/newver.html
se píše že Jádro Altap Salamandera :

* První verze Altap Salamander 2.5 SDK pro vývojáře pluginů.
Jejky, jsem slepouš slepý a při zakládání tématu jsem to přehlédl :cry:
Moc se omlouvám za omyl, má úvodní otázka byla naprosto zbytečná. Stačilo lépe číst.

Posted: 28 Apr 2007, 09:39
by Jan Rysavy
Bohužel jsme nestihli připravit SDK společně s plnou verzí 2.5, což způsobilo tento mírný zmatek. Příští týden to dořešíme.

Posted: 03 May 2007, 08:37
by Jan Rysavy
Informace o stavu SDK k 3.5.2007

Překládáme interní hlášení Salamandera do angličtiny. Jedná se asi o 2000 hlášek, do zítřka by to mělo být. Tyto hlášky jsou pro tvůrce pluginu poměrně zásadní (například Salamander ohlásí, že dané volání mělo proběhnout z hlavního vlákna, atd). S SDK tedy vydáme vývojářský build Salamandera 2.5. Hlášky padají do maličké aplikace Trace Server (fotka dole), která bude také součástí SDK.

Momentálně je ideální vývojovou platformou pro Salamandera Microsoft Visual C++ 6.0. Pokud máte tento překladač, budete schopni vytvořit shodné pluginy, jaké jsou standardně součástí Salamandera.

Pluginy lze tvořit také v Borland C++ a Microsoft Visual C++ 2005 (EE). Interface je pro tyto překladače připaven. V tomto případě je však problém s RTL, není možné plugin linkovat se salrtl.dll. Místo toho si plugin musí nést své RTL, což znamená celkově větší rozměry. Pro MS Visual C++ 2005 se možná najde řešení, musíme to ještě prověřit. Koncem roku vydáme Salamandera 2.53, který bude přeložen v MS Visual C++ 2005, které se tak stane hlavní vývojovou platformou.

Teoreticky by pluginy mělo být možné tvořit v Delphi, volací konvence jsou na to připraveny. Znamenalo by to však překlopení interface do Delphi. Samozřejmě je tu opět overhead s RTL. Tento krok neplánujeme, nebudeme se bránit Vaší případné iniciativě.

SDK pro Salamandera je VELIKÉ. Pokud srovnáte SDK Salamandera s SDK konkurence (TC, FAR), vychází náš interface minimálně 10x větší. Je to dáno tím, že jsme se snažili pluginy do Salamandera integrovat co možná nejhladším způsobem (mám na mysli zážitek uživatele při práci s pluginem). Předesílám to předem, abyste nebyli zaskočeni :)

Co s SDK bude možné vytvořit:
Plugin typu VIEWER (asi nejméně složitý plugin, používá několik málo funkcí interface)
Plugin typu ARCHIVER (trošku složitější plugin, používá kolem desítky funkcí, unpackery jsou obecně jednodušší proti packerům)
Plugin typu FILE SYSTEM (řádově komplikovanější typ pluginu)
Ostatní pluginy typu Checksum, Renamer nebo File Comparator jsou z hlediska SDK naprosto nenáročné.
Samozřejmě jsem bral v potaz pouze otázku náročnosti připojení pluginu na Salamandera.

Editace: zmena cisel verzi: 2.6 na 2.51, 2.7 na 2.52 a 2.8 na 2.53

Posted: 03 May 2007, 09:10
by k0nelupy
Dekujeme za info
bohuzel fotku nevidim

Mam dotaz nebylo by mozne dat take ceskou verzi tech 2000 hlaseni treba jako prilozeny slovnicek ? urcite to nekde v textaku budete mit.
Tyto hlasky budou pro tvurce pomerne zasadni tak aby jim tvurce rozumel :-)

Posted: 03 May 2007, 09:53
by Jan Rysavy
Nezobrazuje se Vám příloha u mého příspěvku? Ani informace o tom, že příloha existuje?

Čeština: nepředpokládáme, že by tvůrci pluginů nerozuměli angličtině alespoň na triviální úrovni, kterou sami používáme. Jak by si potom přečetli MSDN (MS Platform SDK) dokumentaci -- bibli pro tvorbu pluginů. Naopak doufáme, že se kolem SDK vytvoří komunita, co ho dostane kompletně do angličtiny.

Posted: 03 May 2007, 11:37
by k0nelupy
nikde zadnou prilohu ani informaci o ni nevidim :-(

Ta cestina je pro mne porad jeste trivialnejsi. Bibli nectu.
Aspoň se tedy zase zdokonalim v anglictine.