Otázky a odpovědi


V této části budou zvěřejněny vaše dotazy a já na ně zde odpovím. Tak si budou moci odpověď přečíst všichni zájemci a ne pouze tazatel. Dotazy mi posílejte na můj email jiri.formanek@seznam.cz.

1. Existuje nějaké freeware vývojové prostředí pro jazyk C/C++ a kde jej mohu získat?
Ano, existuje Dev-C++ 3.8 a stáhnout si ho můžete na této adrese: www.bloodshed.nu. Snad je ten odkaz ještě platný. Stažená data jste mohli najít na minulém Chip CD.

2. Bude nejaky seriál o DirectShow?
Nebude. Po DirectDraw bych chtěl pokračovat komponentou DirectInput a pak ještě nevím, ale DirectShow to nebude.

3. Bude plynulý přechod z C++ na C#?
Snad ano. C# má být něco mezi Visual Basicem a Visual C++, takže prostředí bude zřejmě "přátelštější", ale stále se bude používat jazyk C++.

4. Mám nějakou třídu (například CMujEdit zděděný od CEdit) a mám ji zobrazenu v panelu ClassView. Občas se stane následující věc, které nerozumím: přidám třídě pomocí položky kontextoveho menu "Add Windows Message Handler" nějakou oblužnou funkci, pak se mi nelíbí co dělá a já ji chci odstranit. Pokud ji smažu ručně přímo v kódu, stejně jako odkaz na ní v mapě zpráv a v hlavičkovém souboru, je vše v pořádku. Pokud však kliknu v ClassView u příslušné metody na Delete a potvrdím, že se mají odkazy smazat a tělo metody zakomentovat, pak se někdy stane, že mi celá třída zmizí z ClassView a zpět se mi objevi teprve poté, co pomoci ClassWizardu znovu přidám smazanou metodu. Když ji následně vymažu "ručně", je vše v pořádku. Čím to je způsobeno?
ClassView není dokonalé. Pokud vymažete kousek klíčového slova "class", tak třída z ClassView zmizí a to je v pořádku, protože vývojové prostředí tuto třídu nenajde, ale občas se stane, že třída zmizí při normalní operaci s třídou jako je například přidávání a mazání funkcí. Toto je chyba samotneho vývojového prostředí a ani nejnovější SP (Service Pack) tuto chybu neopravuje. Pokud se vám stane, že třída zmizí, pokuste se vratit krok, po kterém třída zmizela a posléze ho proveďte znovu. Pokud nejde krok vrátit, musíte buďto čekat až se jednoho krásneho dne třída znovu objeví nebo by mělo stačit vyjmout a zase přidat hlavičkový i implementační soubor, ve kterém je třída. Zkuste restartovat VC++ i cely počítač a poslední možnost je, že vymažete soubory s příponami .ncb a .opt v adresáři vašeho projektu. To jsou soubory, ve kterych je uložena právě struktura ClassView a vy tak přinutíte VC++, aby ji znovu vytvořilo.

5. Existuje česky psaná kniha o DirectX?
Bohužel jsem o takové publikaci neslyšel. V angličtině je takových knih několik (viz. www.microsoft.com).