Portál AbcLinuxu, 12. května 2025 05:27

Dotaz: Tutoriály o multiplatformním programování v C

1.2.2004 17:59 Jan Odvárko | skóre: 10
Tutoriály o multiplatformním programování v C
Přečteno: 338×
Odpovědět | Admin
Nemáte někdo odkazy na (pokud možno české) tutoriály nebo články o multiplatformním programování v C? Čím podrobnější, tím lepší. A ještě by se mi docela hodil nějaký seznam prototypů standartních API funkcí, které lze v multiplatformních programech použít. Thanx
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

elviin avatar 1.2.2004 20:50 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Tutoriály o multiplatformním programování v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus Qt standard. Je to pro ... Windows, Linux/Unix, Mac OS X, and embedded Linux platforms.
Ale neni to C, ale C++.
Jinak pro mulitplatformni programovani bych zvolil nejakou multiknizku v cestine. Je jich hodne:)
Free edice Qtneni pro Windows!
1.2.2004 22:19 Radek Podgorny
Rozbalit Rozbalit vše Tutoriály o multiplatformním programování v C
Mohu jedine doporucit wxWindows (oproti Qt)...
2.2.2004 00:09 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Tutoriály o multiplatformním programování v C
wxWindows jsou C asi tak stejně jako Qt, to jest vůbec.
2.2.2004 03:24 Radek Podgorny
Rozbalit Rozbalit vše Tutoriály o multiplatformním programování v C
Ale tak jsem to prece nemyslel. Jen, ze kdyz uz by mel sahnout po Qt, tak at radeji bere wx. To je vse... :-)
1.2.2004 21:47 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Tutoriály o multiplatformním programování v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co si představuješ pod multiplaformním? Používáš-li standardní ISO C, tak to je [teoreticky] zcela nezávisle na platformě a funguje všude, kde je standardní kompilátor a standardní knihovna C (BTW v manuálových stránkách na Linuxu je napsáno, které funkce vyhovují kterému standardu, jinak si je ISO normy třeba koupit, ale hrubé přehledy lze i vygooglit).

Na druhé straně v čistém ISO C nenaprogramuješ z praktického pohledu o moc víc než Hello World, takže chceš multiplatformně GUI, výpočty, databáze, síťování, multimédia, hry, ...? V všech případech to obvykle obnáší zejména sehnat si knihovnu, která to zařizuje a jede na potřebných platformách, a naučit se s ní pracovat, protože skoro na všechno už existuje...

Pro GUI tu kolega radí Qt, nicméně je to jednak C++ (existuje dost multiplaformních toolkitů v C, např. Gtk+), a jednak pro MS Windows neexistuje free verze (jestli šířím FUD, tak mě zastřelte), takže ta multiplatformnost je v tomto ohledu trochu problematická...
2.2.2004 00:20 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Tutoriály o multiplatformním programování v C
Ještě bych dodal, že pár věcí, které jedou na Unixu i MS Win už jsem pod Gtk+ napsal, a se samotným Gtk+ v podstatě žádný problém není (a to si i píšu vlastní widgety). Problémy jsou spíš toho druhu, že funkce mkdir() je na MS Win deklarovaná v jiném hlavičkovém souboru a má jiné argumenty... nevím, jestli s tímto může pomoci nějaký tutoriál, IMHO lze postupovat jedině metodou pokusu a omylu, přinejmenším dokud člověk nezíská trochu zkušeností, jak to na které platformě chodí a kde co hledat.
2.2.2004 11:58 Jan Kubik
Rozbalit Rozbalit vše Tutoriály o multiplatformním programování v C
rad bych se zeptal ohledne gtk

1. je stabilita pod windows dostatecna, mate s tim trochu zkusenosti

2. kdyz budete psat widget, napr. silne rozsireny gtkentry (zadavani cisel zprava ala kalkulacka, zadavani datumu s automatickym doplnovani udaju, zadavani kombinace rok/kalendarni tyden apod.) budete treba vychazet z toho uvedeneho gtkentry?

bude tento kod pro unix a win stejny, nebo 99.9% stejny (viz vas pripad mkdir..)nebo napr. jen z 60% stejny?

3. nebo by jste zmenil gtkentry a pridal k nemu vyse uvedene vlastnosti

4. neexistuje nahodou uz neco podobneho, co jsem popsal
2.2.2004 14:01 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Tutoriály o multiplatformním programování v C
1. Dnes už bych řekl, že je pod win stabilita dostatečná. Padá to kvůli mým chybám a ne kvůli Gtk+ ;-)

2., 3., 4. Pokud je o přidání featur navíc, lze obvykle vytvořit odvozenou třídu, což je nejlepší řešení. Tohle vypadá, že by šlo poměrně snadno podědit od GtkEntry (podíval bych se např. i na GnomeEntry, což je combo s historií). Vzít kód existujícího widgetu jako základ svého také lze, obzvlášť když se rozhodneš, že to zase tak moc podobné nebude.

GUI kód je [v mých programech] stejný ze 100 %. V tom smyslu, že např. v 20k řádků čistě GUI kódu není jediné větvení podle OS. Co není stejné, jsou systémové věci (už např. nalezení nějakých ikonek a dalších komponent), kolik toho bude, to záleží na tom, kolik toho bude obsahovat ten program.
1.2.2004 22:25 Tux
Rozbalit Rozbalit vše Tutoriály o multiplatformním programování v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
No moc si sice nepopsal co vlastne hodlas programovat, ale ze zasady. Na rychlou grafiku bych vyuzil SDL. Pod Linuxem vyuziva X, pod Win Direct X, takze s rychlosti neni problem. Pro 3D je nejlepsi standartni OpenGL s rozsirenim GLUT. No a pokud hodlas udelat nejakou klikaci aplikaci, kde sem tam neco napises do textboxu, tak doporucuji FLTK. Je mensi nez GTK+, pritom je plne GPL a vypada hodne jako Win. Sice je to C++. Pokud chces opravdu jen C, nezbyde ti nic jineho nez GTK+. Ke kazde teto knihovne je k dispozici tolik materialu, ze myslim ze ti hodne vlasu zesedivy nez budes moct rict "ja to umim :)"
2.2.2004 19:52 Jan Odvárko | skóre: 10
Rozbalit Rozbalit vše Tutoriály o multiplatformním programování v C
No já vlastně ani přesně nevím co budu programovat teď. Rozhodně bych se rád dostal k vytváření her přes SDL. Jenomže nejdřív se musím naučit základy (jen terminál), a ty bych se právě chtěl už učit korektně. Samozřejmě budu programovat v C++, sorry že jsem to neupřesnil.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.