Skuska

Principy tvorby Windows aplikací (programy řízené událostmi, komunikace pomocí zpráv). Základní API funkce tříd USER (okna, menu, kursor, ikona, dialogy) a GDI (pera, štětce, bitové mapy).
Tresko
Matfyz(ák|ačka) level I
Příspěvky: 28
Registrován: 9. 6. 2005 22:19

Skuska

Příspěvek od Tresko »

Ahojte, bol uz niekto na skuske z programovania pre windows? Ak hej, ako to vyzera? Aky je skusajuci? rad by som vedel na co sa mam (nemam) pripravit... :?
gASK
Admin(ka) level I
Příspěvky: 635
Registrován: 9. 6. 2005 12:33
Typ studia: Informatika Mgr.
Bydliště: Konečně Vinohrady:)
Kontaktovat uživatele:

Příspěvek od gASK »

Tak nejprve doporučuji si pročíst tento thread na Fearu, je tam vcelku dost informací.

Kdyby ti nestačily, určitě se najdou jiní co se tu rozepíšou. Já dnes nějak nemám náladu :twisted:
Tresko
Matfyz(ák|ačka) level I
Příspěvky: 28
Registrován: 9. 6. 2005 22:19

Příspěvek od Tresko »

Tak pridavam svoje info o skuske, ktoru som akurat absolvoval. Skuska bola v pohode, diskutovali sme nad programom, ktory som priniesol. Zaujimali ho podrobnosti o digitalnom podpise, to si pozrel ako prve, pytal sa na to, ako som to podpisal, este nieco s certifikatmi a potom presiel na program. Pozeral zdrojak, ked na nieco netypicke narazil, tak sa opytal, preco to tam je, ci by sa to dalo aj inak. Mal som tam dynamicke pridavanie poloziek do menu, tak to ho zaujimalo. Otazky z teorie nechcel ziadne, az na to, preco som tam pouzival subor "stdafx.cpp", ktory inkludoval "stdafx.h"... :wink:
Snad to aspon niekomu pomoze, kedze informacii o skuske z tohto predmetu je dost malo... :) ja to uz mam nastastie za sebou... :D
LuKu
Matfyz(ák|ačka) level III
Příspěvky: 117
Registrován: 15. 1. 2005 18:29
Typ studia: Informatika Mgr.

Příspěvek od LuKu »

Tresko píše:Tak pridavam svoje info o skuske, ktoru som akurat absolvoval. Skuska bola v pohode, diskutovali sme nad programom, ktory som priniesol. Zaujimali ho podrobnosti o digitalnom podpise, to si pozrel ako prve, pytal sa na to, ako som to podpisal, este nieco s certifikatmi a potom presiel na program. Pozeral zdrojak, ked na nieco netypicke narazil, tak sa opytal, preco to tam je, ci by sa to dalo aj inak. Mal som tam dynamicke pridavanie poloziek do menu, tak to ho zaujimalo. Otazky z teorie nechcel ziadne, az na to, preco som tam pouzival subor "stdafx.cpp", ktory inkludoval "stdafx.h"... :wink:
Snad to aspon niekomu pomoze, kedze informacii o skuske z tohto predmetu je dost malo... :) ja to uz mam nastastie za sebou... :D
Diky za info. Ja jdu na zkousku zitra a momentalne dodelavam svuj program - tedy jeho uzivatelske rozhrani, kdyz mu nevadi rozpracovane projekty, tak mu holt prinesu windowsovskou hru bez celeho herniho algoritmu :-) Jediny problem, ktery mi zbyva vyresit, je prekreslovani okna - funkce UpdateWindow nejak nedela to, co bych od ni cekala. Ale do vecera casu dost, aspon se nebudu nudit :-)
Ivo Pivo

Digitalny podpis

Příspěvek od Ivo Pivo »

Tresko píše:... Zaujimali ho podrobnosti o digitalnom podpise, to si pozrel ako prve, pytal sa na to, ako som to podpisal, este nieco s certifikatmi a potom presiel na program. ...
Ako je to s digitalny podpisovanim mojho programu??? Ja so to v zivote nerobil, takze netusim o co ide.
Na prednasky som nechodil, takze netusim, ci to tam bolo preberane.
Viete mi s tym niekto poradit?
gASK
Admin(ka) level I
Příspěvky: 635
Registrován: 9. 6. 2005 12:33
Typ studia: Informatika Mgr.
Bydliště: Konečně Vinohrady:)
Kontaktovat uživatele:

Příspěvek od gASK »

Nevím, jak u ostatních, ale můj program za celou dobu zkoušky vůbec nespustil. Takže nějaké hraní si s uživatelským rozhraním asi nemá moc cenu - pokud tam zobrazuješ okno, nějaký dialog či menu a máš nějakou reakci na myš / klávesnici, bude mu to nejspíše stačit (moje naivní malování je u mne k doptání - ochotně zašlu).

U mne pouze procházel zdroják, něco si mumlal pod vousy a pak se mne zeptal, proč tady volám UpdateWindow. Já jsem se okamžitě chytnul (HINT: nehcte si v programu podobné "naivní" chyby o kterých víte a ke kterým umíte něco říci - ale zas ne moc blbý), vysvětlil, že to je blbost, že jsem to asi zapomněl opravit, že tam má bejt InvalidateRect, následovala klasická sada otázek "co dělá Update, co dělá Invalidate, co dělá WM_PAINT" atd. Protože jsem dopoledne před zkouškou věnoval studiu podobných věcí na MSDN (vřele doporučuji), věděl jsem to a odešel s jedničkou. :twisted:

Jo a malej hint pro LuKu - UpdateWindow pouze zašle oknu pokyn k překreslení ČÁSTÍ URČENÝCH K PŘEKRESLENÍ - tzn nepřekreslí celý okno, pokud nebylo CELÝ nějak zneplatněno - např. překrytím jiným oknem, pohybem apod.. Ty "označís" právě pomocí InvalidateRect - pak teprve ho můžeš překreslit Updatem. To však není potřeba, protože pokud máš nějaký "neplatný" části okna, systém sám pošle v nejbližsím možným termínu WM_PAINT.
LuKu
Matfyz(ák|ačka) level III
Příspěvky: 117
Registrován: 15. 1. 2005 18:29
Typ studia: Informatika Mgr.

Příspěvek od LuKu »

gASK píše:Jo a malej hint pro LuKu - UpdateWindow pouze zašle oknu pokyn k překreslení ČÁSTÍ URČENÝCH K PŘEKRESLENÍ - tzn nepřekreslí celý okno, pokud nebylo CELÝ nějak zneplatněno - např. překrytím jiným oknem, pohybem apod.. Ty "označís" právě pomocí InvalidateRect - pak teprve ho můžeš překreslit Updatem. To však není potřeba, protože pokud máš nějaký "neplatný" části okna, systém sám pošle v nejbližsím možným termínu WM_PAINT.
Moc díky za hint, na InvalidateRect se mi sice nakonec podařilo přijít, ale volání UpdateWindow mi tam zůstalo, to by se Jáklovi asi moc nelíbilo... Teď už mi chybí jen ten digitální podpis, myslela jsem, že to půjde bez problémů podle jeho slidů, ale chyba lávky :-( Nebyl by ještě jeden hint? :wink:
Vytvořila jsem certifikát příkazem

Kód: Vybrat vše

makecert -sv myPrivateKey.pvk myCert.cer
, ale když pak chci pomocí signcode.exe program podepsat, chce to po mně vybrat certifikát z nabídky 0 certifikátů :-( Nikdy jsem nic podobného nedělala, tak vůbec netuším, kde je chyba...
gASK
Admin(ka) level I
Příspěvky: 635
Registrován: 9. 6. 2005 12:33
Typ studia: Informatika Mgr.
Bydliště: Konečně Vinohrady:)
Kontaktovat uživatele:

Příspěvek od gASK »

LuKu píše:Teď už mi chybí jen ten digitální podpis, myslela jsem, že to půjde bez problémů podle jeho slidů, ale chyba lávky :-( Nebyl by ještě jeden hint? :wink:
Vytvořila jsem certifikát příkazem

Kód: Vybrat vše

makecert -sv myPrivateKey.pvk myCert.cer
, ale když pak chci pomocí signcode.exe program podepsat, chce to po mně vybrat certifikát z nabídky 0 certifikátů :-( Nikdy jsem nic podobného nedělala, tak vůbec netuším, kde je chyba...
Tak to je asi nějaká novinka - já dělal zkoušku loni v září a nic jako digitální podpis jsem tam neměl a ani to tehdá nevyžadoval. :twisted:
gASK
Admin(ka) level I
Příspěvky: 635
Registrován: 9. 6. 2005 12:33
Typ studia: Informatika Mgr.
Bydliště: Konečně Vinohrady:)
Kontaktovat uživatele:

Příspěvek od gASK »

gASK píše:
LuKu píše:Teď už mi chybí jen ten digitální podpis, myslela jsem, že to půjde bez problémů podle jeho slidů, ale chyba lávky :-( Nebyl by ještě jeden hint? :wink:
Vytvořila jsem certifikát příkazem

Kód: Vybrat vše

makecert -sv myPrivateKey.pvk myCert.cer
, ale když pak chci pomocí signcode.exe program podepsat, chce to po mně vybrat certifikát z nabídky 0 certifikátů :-( Nikdy jsem nic podobného nedělala, tak vůbec netuším, kde je chyba...
Tak to je asi nějaká novinka - já dělal zkoušku loni v září a nic jako digitální podpis jsem tam neměl a ani to tehdá nevyžadoval. :twisted:
Tak jsem se ptal kamaráda, co odchodil přednášky loni, ale zkoušku zkoušel až letos. Digitální podpis tam neměl, tak se ho Jákl zeptal co to je, k čemu to je apod. Takže pokud to tam nemáš, nevadí, ale musíš o tom něco vědět... :wink: .... teda snad :twisted:
LuKu
Matfyz(ák|ačka) level III
Příspěvky: 117
Registrován: 15. 1. 2005 18:29
Typ studia: Informatika Mgr.

Příspěvek od LuKu »

Prave jsem se vratila od Jakla, takze prispeju s trochou informaci, nez vyrazim na vlak :-)
Program se mi nakonec podarilo vygenerovanym certifikatem podepsat, ale otazkam ohledne podpisu jsem stejne neunikla. Zaskocil me dotazem jak dukladne overit, ze program podepsala opravdu dana firma - hacker si muze vytvorit retezec autorit se stejnymi nazvy, jako maji ty v certifikatu dane firmy. Odpoved: V certifikatu je uvedeno misto (asi nekde na webu firmy), kde se da overit, jestli souhlasi hash certifikatu. V programu me upozornil na to, ze kdyz v dialogu nastavim vysku pisma pomoci lfHeight (nebo tak nejak se to jmenuje), bude to v pixelech a nebude se to teda prizpusobovat rozliseni obrazovky. Pak se jeste ptal ohledne prekreslovani figurek v mym programu a taky proc okno ukazuju pomoci ShowWindow misto toho, abych ho hned nastavila WS_VISIBLE. To uz jsem relativne vedela, a protoze v mem programu krome toho fontu nenasel jediny zadrhel, nakonec mam 1 :D
Ty-Dyt

Navrat ze zkousky

Příspěvek od Ty-Dyt »

Cau,, tak jsem se prave vratil ze zkousky u Jakla, priznam se,ze ve win api zrovna dvakrat nedelam (to co jsem stvoril bylo prvni a posledni v mym zivote), ale vcelku me prekvapilo jak dohloubky chtel nektery veci vedet.
Ptal se na optimalizaci VM_PAINT, (Loudovat ikony jako glogalni, udrzovani kontextu okna a jeho prekreslovani pomoci BitBlt bitove andovane s Invalidovanou oblasti), pak jeste na zpravy, vnitrni strukturu fronty zprav, rozdil mezi post message a send message, Nakonec me nechal prepsat kus toho kodu (Nejaky psani textu do okna) no proste docela nemile, mily emile. Nakonec za 3 :-(, je pravda, ze jsem v tom mel mezery...
Jinac jakl je pri zkousce prijemny, ale kdyz se rozhodne, ze chce neco vedet, tak ho nejde ukecat,ze tohle zrovna nevim, a jit dal.
Hodne stesti ostatnim, T.
Návštěvník

Re: Navrat ze zkousky

Příspěvek od Návštěvník »

Jo a jeste ho hodne zajimaly certifikaty.. overovani, jak uz tu nekdo psal...
tomas
Matfyz(ák|ačka) level I
Příspěvky: 28
Registrován: 6. 6. 2005 19:47
Typ studia: Informatika Bc.
Bydliště: Praha
Kontaktovat uživatele:

Příspěvek od tomas »

Ja tam byl nekdy v lednu, ale nevim jestli moje informace nekomu k necemu budou... Byl jsem u nej asi hodinu a povidali jsme si o vsem moznem, o tom jak se ve WinAPI a .Netu da urcit pozice ovladacich prvku a pak uz jen o XAML a Avalonu :-D ..no dobre uz mlcim (ale 1ku sem dostal).

Obecne myslim ze vyjde z toho co mu clovek ukaze a pokud jste ten program delali tak by s tim nemel byt problem. Ukazte mu to o cem vite nejvic a on u toho podle me vetsinu zkousky zustane.
Tomas Petricek
http://tomasp.net
Uživatelský avatar
snail
Matfyz(ák|ačka) level III
Příspěvky: 144
Registrován: 23. 5. 2005 22:31
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Příspěvek od snail »

No tak jsem se prave vratil ze zkousky. Byl celkem v pohode, ale
fakt plati, ze kdyz se rozhodne, ze chce neco vedet, tak neda pokoj.

Ja jsem tam mel styly CS_HREDRAW a CS_VREDRAW, ale pritom jsem
mel zakazany menit rozmery okna, tohle jsem jeste vedel, ze je to blbost
a ze jsem to tam zapomnel. Ale pak se me prave ptal na jejich vyznam
a to jsem zjistil, ze jsem uplne presne nevedel jak se chovaj...pri zmene
velikosti zneplatni celou klient area...a ptal se me jaky kolem toho vznikaj
problemy...problikavani obrazovky...a taky kdy je vhodny je pouzit a kdy ne.

Dal jsem tam mel celkem neefektivni vykreslovani...zbytecne moc LoadBitmap a CreateCompatibleDC...ale to jsem vedel, ze to jde lip.
Takze celkovej vysledek...docela me prekvapil...za 1 :D
ale je fakt, ze jsem se docela zapotil.

Jo a jeste se me ptal na presnej vyznam stdafx.h...a jak se zmeni, kdyz
includovanej header napisu pred include "stdafx.h" nebo za nebo do neho.
A taky proc tam mam _tWinMain a ne WinMain.
Uživatelský avatar
Tuetschek
Supermatfyz(ák|ačka)
Příspěvky: 657
Registrován: 15. 6. 2005 13:54
Typ studia: Nestuduji ale učím na MFF
Kontaktovat uživatele:

Příspěvek od Tuetschek »

Tak jsem se taky koonecne odhodlal ke zkousce :).
Nemuzu nez potvrdit vyse recene... pri nekterych otazkach jsem se dost zapotil, nakonec to ale dopadlo dobre :D. Program jsem mel sice podepsany, ale na kontrolu a otazky o certifikatech nedoslo... jinak hodil se mi "signtool signwizard" v advanced rezimu, kde se da vybrat i externi certifikat.
Jinak - komentare k mymu programu:

InvalidateRect jednak nastavi urc. oblast jako neplatnou, ale navic da do me fronty zprav WM_PAINT (ktery dostanu hned po vyrizeni dulezitejsich zprav).
UpdateWindow zpusobi okamzite vyrizeni zpravy WM_PAINT, pokud nejaka je ve fronte (pouzival jsem to v podstate spravne ale na primou otazku jsem nejak rychle a srozumitelne odpovedet nezvlad :oops: ).
A jeste: DeleteDC zrusi nejen device-context, ale vsechny veci co jsou u nej vybrane, takze pokud mate Memory-DC, je potreba nejdriv do nej vratit vsechny defaultni objekty (vc. te uzasne jednopixelove bitmapy) a pak teprve zrusit DC a custom-vytvorene objekty zvlast (systemove - GetStockObject - se snad rusit nemaji).

Urcite se to vsechno da najit na MSDN - ale je to dobre schovany :roll: .
Plug 'n' Pray.
Odpovědět

Zpět na „SWI036 Programování pro Windows I & II“