Shell – aneb zástupci, speciální složky, souborové operace a pod.

Diskuze čtenářů k článku

elidor  |  20. 12. 2001 09:30

tedy tento clanek musel dat hodne prace .....

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |  20. 12. 2001 09:10

Nemám to teď před sebou, takže si nejsem úplně jist, ale matně si vzpomínám z dřívejších dob, že použití funkcí SHGetFolderPath apod. není zase tak úplně easy, je potřeba mít "hedry" z SDK.

PF 2002, Já

Souhlasím  |  Nesouhlasím  |  Odpovědět
Radek Chalupa  |  20. 12. 2001 09:24

Samozřejmě že musíte mít "hedry". Bez souboru windows.h toho ve Win32 moc nenapíšete. Inkriminované funkce je deklarovaná v shfolder.h. Pokud však máte MFC aplikaci, pravděpodobně ji ani nemusíte ručně přidávat, ta hlavička je obsažena v některém afx***.h. Jinak tuto funkci podporují Windows od verze 95 a NT4 (viz. MSDN), takže do problémů se dostanete, pokud používáte SDK pro Windows 3.x

Radek Chalupa (autor) - www.rplusj.cz

BTW - možná je lepší se pod příspěvky do diskuse podepisovat, bývá to dobrým zvykem...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |  20. 12. 2001 10:49

Tak. Svými výroky jste mě donutil, abych si svou tezi ověřil. Nainstaloval jsem Win2000 SP2, Studio 6.0 SP5 (ne studio .NET). Žádná funkce SHGetFolderPath zde NENÍ, ani soubor shfolder.h. MFC ani jiný projekt s touto funkcí nepřeložíte! Tato funkce i se souborem shfolder.h  a shlobj.h se nachází na Microsoft Platform SDK, konkrétně jsem použil August 2001. Tudíž bez SDK ani ránu.

K Vašemu stylu vyjádření: má přípomínka neměla NIKOHO (tudíž ani Vás) napadnout. Pouze jsem chtěl říci, že použít tuto funkci v projektu není až tak moc prosté a usoudil, že by to mohla být užitečná informace. Myslím, že věta "Samozřejmě že musíte mít "hedry"" nebyla nutná, navíc jsem napsal "hedry z SDK".

Zdravím a přeji mnoho úspěšných projektů s SDK,

Souhlasím  |  Nesouhlasím  |  Odpovědět
Radek Chalupa  |  20. 12. 2001 11:04

Nevím, zda je Vám zcela jasný pojem SDK. Píšete o service packu pro Visual Studio. To je sice hezké mít SP5, ale to není SDK. A SP2 pro Windows už s tím vůbec nemá co dělat. Jak sám říkáte, s SDK to funguje. Ono je to trochu naopak. Když budete mít samotné SDK, tak Vám stačí nějaký nejjednodušší překladač a linker, a nebudete vůbec potřebovat Visual C++. A jinak SDK je samozřejmě součástí každého vývojového prostředí. (Dokonce i Delhi . Je samozřejmě otázka, jak starou verzi SDK budete mít. Ale podle MSDN tato funkce byla již ve Windows 95, tak bych se velmi divil (samozřejmě se mohu mýlit, nehodlá kvůli tomu reinstalovat původní verzi VC6), kdyby Visual C++ 6 (cca 3 roky staré toto nemělo ve svém originálním balení.

Pro ostatní, pokud někdo máte ještě tu původní verzi Visual C++ 6 a původní MSDN (to byly ještě jen 2 CD), mrkněte se a hoďte sem poznatek. Když se podepíšete, bude to ještě lepší..

Radek Chalupa

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |  20. 12. 2001 13:01

Mám pocit, že každý hovoříme o něčem jiném. Mám verzi Studia z MSDN Subscription, předpokládám tedy, že je to to poslední, co Microsoft kdy vydal. Ty Service Packy jsem tam napsal pro upřesnění. Součástí tohoto Studia soubor shfolder.h ani funkce SHGetFolderPath NENÍ!!!!!!!!!!!

Je zřejmé, že pokud budu mít header stačí mi jakýkoli překladač, bohužel ale situace je opačná, Studio má překladač, ale nemá header. Myslím, že nemá cenu dále pokračovat v této nesmyslné "diskuzi". Uzavřel bych to tím, že pokud mám holou instalaci Studia a hodlám použít funkci SHGetFolderPath musím použít header z CD nazvané Platform SDK.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Luboš Brůha  |  20. 12. 2001 14:31

Panove, klid zbranim :) shfolder.h soucasti distribuce VC++6.0 je, na to muzete vzit oba dva klidne jed. Rozdil je v tom, jak jste VC++ nainstalovali, Já by měl pri instalaci prozkoumat jeji moznosti (custom). Tam si ty hlavickove soubory muze v pohode zaskrtnout. Samozrejme tytez jsou soucasti Platform SDK.

BTW: Opravdu si myslite, ze muzu pouzit libovolny c/c++ kompilator pro kompilaci MFC projektu? Nemuzu...

Souhlasím  |  Nesouhlasím  |  Odpovědět
Radek Chalupa  |  20. 12. 2001 14:51

OK, v pohodě

BTW: o projektu s použitím MFC jsem vůbec nemluvil. Lze přece napsat program pro Windows pouze v "čistým API" a čistým céčku, tedy normy céčka bez dalších doplňků. Pak předpokládám, že pokud překladači poskytnu příslušné hlavičky a knihovny lib, které samozřejmě budu mít ve Windows SDK, tak že to jakýkoliv dobrý překladač vezme. Tím jakýkoliv myslím samozřejmě správně napsaný. To samozřejmě nemůžu potvrdit z vlastní praxe, ale už jsem párkrát v diskusích na netu narazil na doporučení na některé free překladače pod kterými lze zkompilovat Win32 aplikaci.

Radek Chalupa

Souhlasím  |  Nesouhlasím  |  Odpovědět
Luboš Brůha  |  21. 12. 2001 09:08

OK a tahle veta je o cem:

"Pokud však máte MFC aplikaci, pravděpodobně ji ani nemusíte ručně přidávat, ta hlavička je obsažena v některém afx***.h. "

Ale nebudem se dohadovat o takove malickosti, je to trapne. Jedine, co jsem chtel svym prispevkem rici bylo, ze se mylite oba dva (svym zpusobem) a zbytecne se napadate...

Souhlasím  |  Nesouhlasím  |  Odpovědět
Radek Chalupa  |  21. 12. 2001 09:24

Proboha! Tuhle větu jsem napsat v příspěvku, kde jsem se zmiňoval o konkrétní hlavičce s tím, že pokud je aplikace s MFC, tak ta hlavička je obsažená v jiné, a není třeba jí tam ještě dopisovat.

S tímto příspěvkem nijak nesouvisí jiný píspěvek, kde se zmiňuji o tom, zda je nutné mít Visual C++ pro kompilaci programu pro Windows, což jak jistě víte, nemusí být vůbec s použitím MFC, o níž jsem se v tomto příspěvku vůbec nezmínil.

Radek Chalupa

Souhlasím  |  Nesouhlasím  |  Odpovědět
Luboš Brůha  |  21. 12. 2001 09:39

Opravdu mne bavite tim, jak se porad certite  Jsou Vanoce, chce to klid.

Mozna by stalo za to si s klidnou hlavou precist vsechny reakce postupne, jak jdou za sebou a zkusit dedukovat, jaky vytvareji kontext pro nekoho, kdo ho cte nezucastnene. Pro priste zkuste reagovat na oponenty s chladnejsi hlavou a nejdriv najdete skutecne reseni, nez zacnete zmatene reagovat (tj. ten pripad s MFC a afx**)

A zakoncime to. Fci SHGetFolder mohu pouzit, pokud mam ve VC++6.0 k dispozici hlavickovy soubor shfolder.h a dalsi "hacka". Zminovane hlavickove soubory si muzu nechat nahrat na disk behem instalace VC++ (headers nebo MFC) a nebo instalaci Platform SDK.

Hezke svatky.

Souhlasím  |  Nesouhlasím  |  Odpovědět
salam  |  31. 05. 2004 17:16

zmatene reagovujes ty, priste si to poradne precti na co reagujes, hulko

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor