Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Lopuch, server nejen
pro botaniky

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub C, C++ [ŽP: neomezená] (kategorie Programování) moderuje Šéf Lopuchu.
Archiv

Články

Jak bezpečně ukončit vlákno z DllMain
FastAllocPool - urychlení častých alokací a dealokací
Akce a zpráva jako objekt
Tuply v C++
Efektivní alokátor malých objektů a tady druhý a třetí díl
Šablony: Být vládce kvalifikátorů
Vracíme z funkce objekty
Základy komunikace mezi procesy (ve Windows)
Multiple Interface a Instance Factory
Multithreading v C++ (ve Win32)
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: udwydaw
[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
al3x 23.8.2006 13:53  547
BredyNeni treba resit, jestli je lepsi Win pristup (jednotne GUI), nebo Linux pristup (mnoho GUI). Dulezite je uvedomit si, ze kdyz pises neco pro Linux, musis se prizpusobit Linuxovemu pristupu. Pokud to neudelas, pak bude (velice pravdepodobne) na velke mnozine Linuxovych stanic tvove aplikace vypadat prinejmensim zvlastne a bude se s ni hure pracovat. Proto v aplikaci pro Linux SILNE doporucuju brat ohledy na Linuxove zvyklosti a zvolit si radeji existujici widget, pro ktery to preportujes. Nabizi se Qt, nebo GTK. Nema smysl jedno z nich jednoznacne (ne)doporucit. Vyber si bud podle zpusobu programovaciho pristupu k nim, podle predpokladane cilove skupiny tve aplikace nebo treba jen podle osobniho vkusu. Samozrejme si muzes napsat sam vlastni, ale bud budes mit problem respektovat osobni nastaveni fontu, barev, velikosti, dpi, kodovani, nebo budes zbytecne znova psat neco, co uz existuje. V obou pripadech to bude zbytecna prace.
king King Born to be king - ... 23.8.2006 12:16  546
bredytim jsem chtel jen naznacit, ze pokud je mi znamo, musi se to skutecne obchazet pres mutexy...
nic jineho jsem nevidel, to ale nemusi nic znamenat, s thready jsem neco psal jen jednou a to jsem hlavne chtel aby to behalo vsude (x86 Linux, SPARC Solaris a BUHVICO IRIX), takze jsem tyhle veci neresil...
bredy 23.8.2006 12:10  545
KingNedočetl jsi to celé
Bylo by škoda kdybych je musel simulovat mutexama...

Pro Win32 na x86 používám přímo inline assembler
lock cmpxchg [edi],edx

Pokud nemám jistotu, že to mohu udělat, zavolám InterlockedCompareExchange, což se stejně nakonec převede na tuto jedinou instrukci na x86 (nebo volání jedné instrukce v DLL).

Protože na tom mám postavenou kritickou sekci (která se při překladu inlinuje do asi peti instrukci s jednim podminenym skokem a s jednim call v pripade, ze se kritickou sekci nepodari ziskat).
Ano, přepsat všechny interlocked operace na pthread_mutex_ je řešení, ale pochybuju o efektivitě.
king King Born to be king - ... 23.8.2006 11:29  544
imho k tomu ucelu slouzi pthread_mutex_init a spol ( man pthread_mutex_init )
bredy 23.8.2006 11:24  543
mptsDobře, když mne chytáš za slovo tak se opravím. Na Linuxu jsou provozovány dva nejrozšířenější desktopy a samozřejmě spoustu dalších...

Nemusíte mi vysvětlovat co je linux. I Windows má část operačního systému a část GUI. Že jsou tyto části integrované je věc jiná, ale otázkou je, zda to vadí. Z pohledu uživatele bych spíš byl za, aby prostředí bylo jednotné. Ale to uz jsem offtopic.

Mám dotaz, studuju posix threads, ale chybí mi interlocked operace. Bylo by škoda kdybych je musel simulovat mutexama... Taková kritická sekce je pomocí intelocked operací rychlá jak ďas!
king King Born to be king - ... 23.8.2006 10:27  542
kdokolivo tom nic nevim, ale podotykam, ze Qt vubec nesleduju, ja jsem na GTK ;)
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 23.8.2006 10:06  541
King [539]: Neni to tak, ze prave tohle se s verzi 4 meni? Ja mam pocit, ze prave ctyrka ma prinest krom funkcnich zmen i zmeny licencni.
mpts mpts Je to jinak, ba přesně naopak! 23.8.2006 09:36  540
Linux nemá žádný desktop, narozdíl od windows je totiž linux operační systém, nikoli spatlanina operačního systému a rozhraní pro koncové uživatele a kdovíčeho ještě. A v tomto smyslu je linux pouze jeden.

Pod tímto operačním systémem lze pak provozovat rozličné uživatelské programy, včetně různých X serverů, HTTP serverů, window managerů, desktopů, textových editorů, multimediálních přehrávačů atd. atp., a to vše dohromady, ano jest to provozováno pod operačním systémem linux, lze pak souhrně též označit -- a běžně se označuje -- slovem linux, to však je již jen jeho volný význam, a v tomto volném významu pak existuje linuxů opravdu nespočet (ale to nakonec i windows, akorát že u nich vlivem té spatlanosti má uživatel menší svobodu volby uživatelského software, takže se jeví na pohled uniformněji).

Tolik odbočka k terminologii, když už nemám co říci přímo k věci. :-)
king King Born to be king - ... 23.8.2006 09:15  539
bredyQt pod windows ma ale komercni licenci - pokud se nepletu, tak pokud nebude tva knihovna pod GPL, tak budes muset zaplatit...
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 23.8.2006 08:58  538
Bredy [537]: Linux nema dva desktopy, Linux ma desktopu, az by ses divil. AL3X tim chtel rict to, ze nebudes mit problem s portaci na jine distribuce v tom smyslu, ze by se to treba vubec nezkompilovalo, nikoliv ze by tim rikal, ze na vsech distribucich to bude vypadat stejne, to prave naopak.
Nevim, mne se QT libi celkem i pod Windows, navic cekal bych, ze verze 4 na tom bude jeste lepe. Pravda, pod Windows jsem s QT videl jenom sim, ale ubezpecuju Te, ze u vhodne nastaveneho simu bys Ty poznal, ze to je QT aplikace, ja taky, ale 98 % jinych uzivatelu ne, akorat by jim bylo divne, jak je mozne, ze tenhle ICQ klient neobsahuje hromadu reklam.
Kazdopadne nikdo Te nenuti to pres QT implementovat i na Windows - na Windows proste dal pouzivej to, co mas.
bredy 23.8.2006 08:20  537
AL3XMno o teoretické možnosti že linux je jen jeden jedinečný bych polemizoval (už z toho pohledu, že má dva desktopy není jedinečný, ale prostě se s tím musí počítat). Bohužel často nepatřím k nadšencům čehokoliv (a týká se to i technologií pod windows), ale spíš ke všemu přistupuju kritičtěji.

Ostatní:

S Qt už jsem s ním měl tu čest. Jediná věc, která mě odrazuje je hnusná (graficky) implementace pod windows a jakákoliv rezignace na nastavení windows... i když to možná je spíš chyba programátorů v honbě za tím být originální. Každopádně QT aplikace se ve Win pozná na dálku. Opačný problém mám s WinAPI, MFC, atd, které zase pro změnu na Linuxu nerozběhám ale mnohem lépe sedí do stylu Windows. Na druhou stranu ani MFC není svaté, spíš je to opruz v něm dělat. Takže proto píšu rozhraní, které by na straně aplikace bylo stejné, implementace uvnitř bude záviset na platformě (a žádné #ifdef LINUX, ale prostě úplně unikátní zdroják). Samozřejmě plně objektové. Na té nej nejnižší úrovni bych si dokázal představit implementaci pod X11, ale ostatní api samozřejmě prostuduju.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 23.8.2006 08:19  536
Bredy [533]: To je prave to, co Ti kazdej rekne jinak, ja bych Ti zase rek, at to delas radsi pro KDE nez pro Gnome. Presneji receno ani ne tak nutne nad KDE knihovnama, ale nad QT (nad kterym stoji i KDE, cili KDE je zase jeste o neco vys). Tady jde proste ciste o osobni preference a QT vs. GTK tabory proti sobe stoji asi zhruba jako vim vs. emacs (nebo treba i Windows vs. Linux). Mne osobne prijde GTK divne, vsechna temata, ktera jsem pro nej videl, pomerne hnusna, a hlavne open/save dialogy hrozne spatne pouzitelne a furt se menici, takze jen co si clovek zvykne, jak je z ty klavesnice ovladat, tak je to v pristi verzi zase uplne jinak. Nicmene stejne tak dobre Ti muze nekdo jiny popsat stejne mnozstvi veci, ktere se jemu nelibi na QT. Tady asi neexistuje spravna volba, tady musis jit cestou toho, co Ti vic vyhovuje. Ale shodnu se s AL3Xem na tom, ze proti tomu existuje nejspis spatna volba, kterou je pokouset se o to vsechno sam.
al3x 22.8.2006 22:58  535
Vidim, ze s nekterejma odpovedma jsem trosku zaspal.

Ad 3) Neexistuji "ruzne Linuxy". Linux je bud jenom jeden, nebo kazdy jedinecny (podle hloubky pohledu). Skoro bych radil neco si predem precist o cele "filosofii" nez se do toho pustis. A opravdu bych vubec neradil delat to tak, aby to vypadalo co nejvic jako Win. Kdyz pouzijes neco existujiciho (GTK treba), tak mas jistotu, ze to bude na vsech "Linuxech" vypadat spravne. Pokud se toho pokusis docilit sam, tak (se svou zkusenosti s Linuxem) patrne neuspejes.
al3x 22.8.2006 22:51  534
1) Pouzivam vim + gdb, ale to ti je asi na nic.

2) pthread.h tutorial: http://www.llnl.gov/computing/tutorials/pthreads/
plus v konzoli:
man pthread.h
man jmeno_konkretni_fce

3) Qt, nebo GTK je lepsi volba nez si patrne myslis. Vetsina uzivatelu bude mit uz jedno, nebo druhe zavedene v pameti, takze to pobezi rychlejc. Dale budou mit nastavene fonty a barvy, ktere jim vyhovujou. Jakykoliv tvuj widget bude bud presne kopirovat existujici, nebo bude vypadat znatelne hur. Linux se od Win vyrazne lisi mnohem sirsi variabilitou vzhledu oken a dost na tom, ze existuji dve ruzne Qt/GTK - jeste aby nejakej program pouzival svuj vlastni.
bredy 22.8.2006 20:50  533
Někdo mi poradil, že existují nějaké přímo SDK na KDE nebo Gnome. Říkal ať radši dělám na gnoma, tak nevím. Mne by ideálně vyhovovalo api, ktere je na úrovni WinApi, tj, žádné pokusy o nějaké objektové šíleností, prostě čisté ovládání, vytvoř okno, překresli okno, sejmi událost kliknutí myši atd... i když by se třeba hodilo i "vlož editační okénko", ale nic kolosialniho. Kdo programuje zároveň ve WinAPI ten bude vědět.

Co se threads týče, posix bude stačit. Naopak moje knihovna je v C++ a wrappuje thready, které jsou spíš napsané pro C (i v tom winapi)

[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt