Win32 - API a vse kolem nej – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Win32 - API a vse kolem nej – C / C++ – Fórum – Programujte.comWin32 - API a vse kolem nej – C / C++ – Fórum – Programujte.com

 

Kamil Sk?la0
Návštěvník
24. 2. 2006   #1
-
0
-

Tady si muzem dlouze povidat o API a rozvijet vasnive i krvave diskuse :-)))

Nahlásit jako SPAM
IP: ...–
Kdyz chces nahoru, musis dolu :-) dchub://allhub.net
Peter D.0
Expert
24. 2. 2006   #2
-
0
-

no bolo by dobre nejako zacat :jj:
mne sa t win api nezda. veeela casu by podla mna trvalo ho ovladnut na takej urovni zeby som robil co si zmyslim :pila:
mna by zaujimalo ako to je s kompilatorom Borland c++ builder. Ten sa casto uvadza pri api aplikaciach. mate niekto s nim skusenosti ?

Nahlásit jako SPAM
IP: ...–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
Kamil Sk?la0
Návštěvník
28. 2. 2006   #3
-
0
-

Nez se naucis jazyk na takovy urovni abys moh delat co si zmyslis, tak to taky trva a urcite to neni otazka jednoho tydne.
To sami je API, nakej cas to zabere, to ano, ale rozhodne ne moc vic, co dobry zvladnuti zakladu C/C++(myslim tim pouzitelne zaklady pro samostatnou cinnost).
Co se udava s C++Bulderem nevim, ani sem ho nikdy nezkousel a ani nechci, ten uz je dneska v kategorii klikacich prostredi, ktere cpou do kodu spoustu hovadin a smeti a to neni ono.

Nahlásit jako SPAM
IP: ...–
Kdyz chces nahoru, musis dolu :-) dchub://allhub.net
survik1
~ Moderátor
0
Posthunter
28. 4. 2006   #4
-
0
-

Win API je kvalitni cast c++ a jak jiz bylo receno ,builder je o nicem. Stejne tak ja osobne neuznavam VC ,i kdyz ano ,je pravda ,ze usnadnuje praci. Ale ten ,kdo chce byt opravdovy programator, si vezme navody, kody a Dev-C++ ,kde si vse musi delat sam a to je na programovani dobry ,delat si veci sam. A k tomu pomuze i Win32 API i Dev-C++ a samozdrejme samotne C++ :dabel:

Nahlásit jako SPAM
IP: ...–
Život je jen hra, která se nedá vyhrát.
Tom?? Bos0
Stálý člen
29. 4. 2006   #5
-
0
-

Ja som asi posledneho pol roka vyvijal aplikaciu pod Win32 API kvoli praktickej maturite. Veci sa maju asi tak, ze vsetko co je spravene pod Windowsom ako GUI je spravene cez Win32 API (bez OOP). Je jedno ci to je vyvijane ako MFC, ATL, WTL, alebo cokolvek ine, vnutorne to je vsetko spravene cez Win32 API. Je pravda, ze vyssie spomenute OOP kniznice znacne urychluju vyvoj, ale napr. MFC (ktore je dost pouzivane) obsahuje vela chyb co priznava aj M$ (a to je uz co povedat, ked si to prizna samotny M$), dalej nieje uplne spatne kompatibilne so starsimi verziami a pomaly zacina byt dost klikacie.

Borland Builder je pekne prostredie poskytujuce asi najrychlejsi vyvoj GUI aplikacii, vdaka tomu ze obsahuje "klikacie" formy a komponenty. Tym odpadava starost programatora o implementaciu a inicializaciu roznych prvkov. Na jednej strane sa tym ziskava cas, ale na druhej kebyze date programatorovi spravit tu istu vec bez pouzitia spominanych komponent alebo foriem, tak je strateny.

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Adam Streck0
Stálý člen
1. 5. 2006   #6
-
0
-

Přiznávám se že jsem si na visuální třídy taky nikdy nezvyk, prostě to radši napíšu sám. Nehledě na to, kolik jich použijete ve vývoji? Většinou použijete jen okno a nazdar, zbytek už píšete sami, možná sem tam nějakej ten button, ale to je všechno.
Jedinej klad visualu vidim v tom že o svoje objekty se stará sám a tak se dá zamezit únikům paměti.

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
1. 5. 2006   #7
-
0
-

Jo, taková otázečka, jak se liší Win 16 od Win 32 API? Zatím mě napadlo ze zpráva mohla mít o jeden parametr míň, ale to fakt jen hádám.

Nahlásit jako SPAM
IP: ...–
Tom?? Bos0
Stálý člen
1. 5. 2006   #8
-
0
-

Podla mna sa jedna o API podporujuce vyvoj aplikacii s dlzkou spracovatelneho slova 16 bitov.

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Adam Streck0
Stálý člen
1. 5. 2006   #9
-
0
-

WORD má ve Win 32 API 32 bitů? To jsem nevěděl...

Nahlásit jako SPAM
IP: ...–
Tom?? Bos0
Stálý člen
1. 5. 2006   #10
-
0
-

Dlzka spracovatelneho slova zalezi od toho kolko bitovy je procesor. Samozrejme CPU su spatne kompatibilne takze na 32 bitovom CPU spustis 16 bitovu aplikaciu.

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Adam Streck0
Stálý člen
1. 5. 2006   #11
-
0
-

Zajímaví, pak je tu spíš to že Win 16 už se dost dlouho nepoužívají

Nahlásit jako SPAM
IP: ...–
Tom?? Bos0
Stálý člen
1. 5. 2006   #12
-
0
-

Sak na to nieje ani dovod. Malokto dnes bezi na 16 bitovych CPU, tak naco by sa pre vyvijali aplikacie. Podobny osud mozno caka aj 32 bitove, len to ma este svoj cas (mozno takych 10 - 15 rokov alebo aj viac).

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Adam Streck0
Stálý člen
1. 5. 2006   #13
-
0
-

Jo, zrovna se mi to tady hodí, mám problém s TransparentBlt. Normálně jsem v linkeru přidal msimg32, ale stále mi to píše, že FCE undeclared (mám Dev-Cpp). Nevíte někdo, co s tím?

Nahlásit jako SPAM
IP: ...–
Tom?? Bos0
Stálý člen
1. 5. 2006   #14
-
0
-

Skus napisat ako si tam pridal Msimg32.lib.

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Adam Streck0
Stálý člen
1. 5. 2006   #15
-
0
-

Nakonec to našel strejda google, pomohlo připsat #define WINVER 0x0500 před Windows.h.

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
1. 5. 2006   #16
-
0
-

Snad to má co dělat s nekompatibilitou knihovny win u Dev-cpp.

Nahlásit jako SPAM
IP: ...–
Tomáš Bos0
Stálý člen
1. 5. 2006   #17
-
0
-

Pouzivas aj nejaky resource editor na vizualne pridavanie ovladacich prvkov do aplikacie, alebo to kodis manualne?

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Adam Streck0
Stálý člen
1. 5. 2006   #18
-
0
-

Manuálně.

Nahlásit jako SPAM
IP: ...–
Tom?? Bos0
Stálý člen
1. 5. 2006   #19
-
0
-

Ja som tiez zo zaciatku kodil vzhlad manualne, ale potom som mal spravit dva stlpce s asi 20 static a edit boxami, tak som to musel robit cez resource editor, inac by som sa zblaznil.

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Adam Streck0
Stálý člen
1. 5. 2006   #20
-
0
-

Je to tenhle problém http://www.gamedev.net/community/forums/topic.asp?topic_id=260901&whichpage=1?

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
1. 5. 2006   #21
-
0
-

Já se zatím spíš v WinAPI šťourám než bych pořádně codil, takže na tohle sem ještě nenarazil, zatim si držim všechny soubory projektu do 500 řádků.

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
1. 5. 2006   #22
-
0
-

Jo a vlastně ještě jeden dotaz, co kdo říkáte na knihu od Petzolda Programujeme windows?

Nahlásit jako SPAM
IP: ...–
1. 5. 2006   #23
-
0
-

Zatím jsem slyšel jen samou chválu. Ale zase na druhou stranu stojí docela balík.

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
1. 5. 2006   #24
-
0
-

Já vim, zvláště když se po netu povaluje tolik tutoriálů, ale zase taková referenční příručka....
když už to jednou člověk byl ochotne vypláznout za mistrovství....
a za příběh čaje :)...

Nahlásit jako SPAM
IP: ...–
1. 5. 2006   #25
-
0
-

... nedá mu to a vyplázne zase.
Stejně tak jako tak neodolím a časem mi přibyde do sbírky, jako všem, kteří to kdy s programováním pod Win mysleli vážně.

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
1. 5. 2006   #26
-
0
-

d1ce napsal:

... nedá mu to a vyplázne zase.
Stejně tak jako tak neodolím a časem mi přibyde do sbírky, jako všem, kteří to kdy s programovaním pod Win mysleli vážně.


Nejsem si jist jak moc to s ním myslím vážně, ale taky bych to viděl že mi někdy v budoucnu zatíží poličku. :nemůžu najít vhodného smajla. :O

Nahlásit jako SPAM
IP: ...–
Jura_0
Stálý člen
2. 5. 2006   #27
-
0
-
Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
2. 5. 2006   #28
-
0
-

To bude ono, TransparentBlt totiž není podp. ve verzích win 95 a nižších.

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
13. 5. 2006   #29
-
0
-

Te? jsme ?e?ili probl?m s typedef u
typedef struct _WNDCLASSEX {
...
} WNDCLASSEX;
teoreticky to znamen? ?e pro strukturu je vytvo?eno z?st. jm?no _WNDCLASSEX a je vytv. strukturn? prom?nn? WNDCLASSEX z bezejmenn? struktury. To ale nefunguve jeloko? pak deklarujeme norm?ln? strukturn? prom?nnou v programu.
Tak?e to mus? zanemnat ?e typedef nahrad?
struct _WNDCLASSEX {
...
};
z?stupn?m jm?nem WNDCLASSEX.
Jen?e o mi p?ijde jako naprost? ...... jeliko? se to rovn? deklaraci
struct WNDCLASSEX{
...
};
??? :och:

Nahlásit jako SPAM
IP: ...–
Ondrej Karas
~ Redaktor
0
Věrný člen
13. 5. 2006   #30
-
0
-

Doted sem delal zatim jenom v builderech, ale protoze se uz nejakou dobu chci naucit i winAPI tak sem hledal nejaky vhodny clanky. Na builder.cz je docela obsahlej serial, ale bohuzel se mi zda, ze neni tak nejak ucelenej a skace z jednoho do druhyho. Proto sem rad ze vychazi i neco tady. A zatim se mi to zda o 100% lepsi. Je to hlavne o hodne srozumitelnejsi. Co me ale trapi je frekvence s jakou dily vychazej. Mnohdy mam uz po precteni jednoho dilu (a samozrejme i vyzkouseni) chut se pustit do dalsiho. Vim samozrejme, ze mnohdy to da dost prace, sam pisu serial na jinou tematiku, ale uvital bych castejsi pribyvani novych dilu. Pokud byste tedy nekdo vedel o necem podobnych - proste lidsky napsanym, tak mi prosim dejte vedet...

Nahlásit jako SPAM
IP: ...–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
Jura_0
Stálý člen
13. 5. 2006   #31
-
0
-

Asan napsal:

Te? jsme ?e?ili probl?m s typedef u
typedef struct _WNDCLASSEX {
...
} WNDCLASSEX;
teoreticky to znamen? ?e pro strukturu je vytvo?eno z?st. jm?no _WNDCLASSEX a je vytv. strukturn? prom?nn? WNDCLASSEX z bezejmenn? struktury. To ale nefunguve jeloko? pak deklarujeme norm?ln? strukturn? prom?nnou v programu.
Tak?e to mus? zanemnat ?e typedef nahrad?
struct _WNDCLASSEX {
...
};
z?stupn?m jm?nem WNDCLASSEX.
Jen?e o mi p?ijde jako naprost? ...... jeliko? se to rovn? deklaraci
struct WNDCLASSEX{
...
};
??? :och:


Mozna jsem nepochopil vas dotaz, ale zapis pres typedef mel sve opodtsatneni v cistem C, v podstate kdyz v C napisete:
struct nazev{
//..
};
Tak musite deklarovat promenne takto:

struct nazev promenna;

Kdezto:
typedef struct _nazev{
//...
} NAZEV;

vam umozni:

NAZEV prom1;
struct _nazev prom2;

V podstate jde spise jen o zprehledneni zapisu. Navic v C++ tento problem odpada. Ted doufam, ze jsem to pochopil. Kdyby prece jen ne, tak moji odpoved ignorujte..:)

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
13. 5. 2006   #32
-
0
-

No nejsem si úplně jist. Hlavně tímto:

NAZEV prom1;
struct _nazev prom2;

první řádek chápu, ale druhý ne, v základu by se ta struktura přece psala
struct NAZEV {...};
a pak používala jako
NAZEV prom1;

když ale napíšu typedef struct _nazev, tak mi to nahradí slovo struct slovem _nazev, ne? Nebo to má v kombinaci se strukturou ještě vedlejší účinky?

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
13. 5. 2006   #33
-
0
-

Jura_ napsal:

Mozna jsem nepochopil vas dotaz, ale zapis pres typedef mel sve opodtsatneni v cistem C, v podstate kdyz v C napisete:
struct nazev{
//..
};
Tak musite deklarovat promenne takto:

struct nazev promenna;

Kdezto:
typedef struct _nazev{
//...
} NAZEV;

vam umozni:

NAZEV prom1;
struct _nazev prom2;

V podstate jde spise jen o zprehledneni zapisu. Navic v C++ tento problem odpada. Ted doufam, ze jsem to pochopil. Kdyby prece jen ne, tak moji odpoved ignorujte..:)




Jo, u? jsem pochopil i j?, ale teoreticky by to nem?lo fungovat v C++, proto?e v C++ znamen? deklarace

struct {...}
N?ZEV;

To ?e vytvo??te jednu ?lenskou prom?nnou bezejmenn? struktury. N?sledn? deklarace

N?ZEV prom;

tedy neexistuje.

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
13. 5. 2006   #34
-
0
-

Díval jsem se do MSDN, je tam napsáno, že to funguje tak jak to funguje, ale není tam vysvětleno proč....

Nahlásit jako SPAM
IP: ...–
Jura_0
Stálý člen
13. 5. 2006   #35
-
0
-

Asan napsal:

No nejsem si úplně jist. Hlavně tímto:

NAZEV prom1;
struct _nazev prom2;

první řádek chápu, ale druhý ne, v základu by se ta struktura přece psala
struct NAZEV {...};
a pak používala jako
NAZEV prom1;

Když ale napíšu typedef struct _nazev, tak mi to nahradí slovo struct slovem _nazev, ne? Nebo to má v kombinaci se strukturou ještě vedlejší účinky?



Ten druhy zapis(struct _nazev prom2) se pouziva v cistem C, pokud prekladate v C++, tak je to uplne fuk. A typedef u struktury je jen k tomu ze se vytvori novy datovy typ, ale pritom nenahrazuje klicove slovo(kopilator vas na to upozorni). Takze je to jakoby jste napsal
typedef struct _nazev NAZEV;
Zkratka je to jen dasli typ zapisu pro tu jednu a tu samou kokotinu jako je:
typedef struct _nazev{
}NAZEV;

Kdyz nepouzijete typedef, tak musite napsat(nemusite, ale je to jen, kvuli tomu abyste nemusel deklarovat promenne pres struct nazev promenna):
struct _nazev{
};
typedef struct _nazev NAZEV;



Nahlásit jako SPAM
IP: ...–
Jura_0
Stálý člen
13. 5. 2006   #36
-
0
-

Asan napsal:

Jo, u? jsem pochopil i j?, ale teoreticky by to nem?lo fungovat v C++, proto?e v C++ znamen? deklarace

struct {...}
N?ZEV;

To ?e vytvo??te jednu ?lenskou prom?nnou bezejmenn? struktury. N?sledn? deklarace

N?ZEV prom;

tedy neexistuje.



To neni pravda. Zapisem

struct {
int b;
}NAZEV;

pouziti:

NAZEV.b=5; // stejne jako v C, kdyz nepouzijete typedef v deklaraci struktury

se vytvori promenna NAZEV, zadna clenska promenna. Tento zpusob zapisu vytvareni promennych prevzalo C++ uz od C.

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
13. 5. 2006   #37
-
0
-

Jura_ napsal:

Asan napsal:

Jo, u? jsem pochopil i j?, ale teoreticky by to nem?lo fungovat v C++, proto?e v C++ znamen? deklarace

struct {...}
N?ZEV;

To ?e vytvo??te jednu ?lenskou prom?nnou bezejmenn? struktury. N?sledn? deklarace

N?ZEV prom;

tedy neexistuje.



To neni pravda. Zapisem

struct {
int b;
}NAZEV;

pouziti:

NAZEV.b=5; // stejne jako v C, kdyz nepouzijete typedef v deklaraci struktury

se vytvori promenna NAZEV, zadna clenska promenna. Tento zpusob zapisu vytvareni promennych prevzalo C++ uz od C.



ANO, je vytvo?en? prom?nn? NAZEV, je? m? v?echny n?le?itosti struktury, JEN?E nen? mo?n? pou??t j? jako typ a deklarovat prom?nno tud??,

N?ZEV prom;

tedy neexistuje.


Jen jsem se upsal a m?sto strukturn? prom?nn? jsem napsal ?elnsk? prom?nn?. Samoz?ejm? je v prom?nn? N?ZEV p?istupovat k ?lensk?m prom?nn?m, ale nen? mo?n? deklarovat ??dnou dal?? prom?nnou stejnou jako N?ZEV.

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
13. 5. 2006   #38
-
0
-

Te? se jen ujist?m, v

 typedef struct _nazev NAZEV; 

je struct _nazev p?vodn? jm?no a NAZEV jm?no nahrazovac?.

A v C, pokud nap??
struct MOJE_STRUKURA {...};
mus?m pak deklarovat prom?nnou takto
struct MOJE_STRUKTURA PROMENNA;

(zat?mco tedy v C++ sta?? MOJE_STRUKTURA PROMENNA;)

ano?

Nahlásit jako SPAM
IP: ...–
Jura_0
Stálý člen
13. 5. 2006   #39
-
0
-

Asan napsal:

Te? se jen ujist?m, v

 typedef struct _nazev NAZEV; 

je struct _nazev p?vodn? jm?no a NAZEV jm?no nahrazovac?.

A v C, pokud nap??
struct MOJE_STRUKURA {...};
mus?m pak deklarovat prom?nnou takto
struct MOJE_STRUKTURA PROMENNA;

(zat?mco tedy v C++ sta?? MOJE_STRUKTURA PROMENNA;)

ano?


Ano, presne tak. Jinak jsem si cetl svoje prispevky a omlouvam se, psal jsem to dost chaoticky.

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
13. 5. 2006   #40
-
0
-

V po??dku, j? to n?jk pobral, ale hlavn? z toho vypl?v? to co jsem psal jako prvn?


Tak?e to mus? zanemnat ?e typedef nahrad?
struct _WNDCLASSEX {
...
};
z?stupn?m jm?nem WNDCLASSEX.
Jen?e o mi p?ijde jako naprost? ...... jeliko? se to rovn? deklaraci
struct WNDCLASSEX{
...
};


Jen te? u? v?m ?e je to kv?li kompatibilit? s C, kter? m? drobet jinou syntaxi.

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
7. 6. 2006   #41
-
0
-

Mám problém při používání funkce ChangeDisplaySettings - přestože nastavím prvek dmPelsWidth struktury DEVMODE na určitou hodnotu, proběhnutí fci neudělá s rozlišením zhola nic.

NEmáte někdo něco, kde je tato struktura a funguje?

Nahlásit jako SPAM
IP: ...–
Jura_0
Stálý člen
8. 6. 2006   #42
-
0
-

Asan napsal:

M?m probl?m p?i pou??v?n? funkce ChangeDisplaySettings - p?esto ?e nastav?m prvek dmPelsWidth struktury DEVMODE na ur?itou hodnout, prob?hnut? fci neud?l? s rozli?en?m zhola nic.
NEm?te n?kdo n?co kde je tato struktura a funguje?


A nastavil jste v strukture polozku dmFields?
Ta urcuje, ktere polozky struktury DEVMODE byly inicializov?ny.

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
8. 6. 2006   #43
-
0
-

Ano - nastavil a kupodiva tam byla ta chyba DM_PELSWIDTH | DM_PELSWIDTH

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 51 hostů

Podobná vlákna

Win32 API — založil survik1

CHECKBOX WIN32 API — založil Loli

Správy v Win32 API — založil Rišo Kakaš

Win32 API - zdroje — založil Rišo Kakaš

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý