C++ WINAPI vagy Keretrendszer?
2011-03-02T17:25:11+01:00
2011-03-06T13:04:58+01:00
2022-07-24T18:01:19+02:00
  • Ha már ennyire lekezelően beszélsz velem engedd meg ugyanezt visszafelé is. Nemtudom mennyire volt érthetetlen, hogy a MINGW compiler amivel alapból jár az egész kóceráj nekem nem megfelelő. Ettől fogva nem látom értelmét a tovább diskurációnak ha már olvasni sem olvastál és nemtudod miért fordítottam szerintem fölösleges reagálnod.

    Ha már ennyire triviális dolog nemtudom miért nem jutottak a kérdésekkel semmire a QT fórumon de tetudod főnök. Továbbiakban lekezelő és vitaindító hozzászólásokra egyszerűen nem fogok reagálni még mielőtt vennéd a fáradtságot és totál fölöslegesen írnál mégegy butaságot.
    Mutasd a teljes hozzászólást!
  • Így már érthető. Persze, ha valaki nagyon nekiveselkedik, a C++-t is simán visszafejti. Szinte minden nagyobb programra a windowstól a Total Commanderig van törés, bármiben is írták. Márpedig, amit törni lehet azt visszafejteni is. De az tény hogy sajnos, .NET alatt ez jóval egyszerűbb feladat.
    Mutasd a teljes hozzászólást!
  • telepítés:
    ==========

    http://qt.nokia.com/downloads

    1 Qt libraries 4.7.2 for Windows (VS 2008, 218 MB)
    2 qt-vs-addin-1.1.8 (57 MB)

    Semmit nem kell fordítgatni, minden lib megvan a fejlesztéshez.


    Új project:
    ===========

    Szokásos file/new project/qt
    A wizardban vigyázni kell a settingsnél, hogy a qt3 support library be legyen pipálva, különben bizonyos funkciók nem lesznek elérhetők.

    Ha egy ennyire triviális dolog nem megy nem biztos, hogy a win32 és a Direct3D neked való mindenféle rossz idulat nélkül.
    Mutasd a teljes hozzászólást!
  • Az ügyfél kérése volt, hogy c++-ban íródjon az alkalmazás, mert az alkalmazáslogika kényes adat. Így nehezebben visszafejthető.
    Mutasd a teljes hozzászólást!
  • Ha egy platformon fejlesztesz, nyilván okod van rá amiért választottad. Ezt az okot kérdeztem. Én azért fejlesztek jelenleg .net alatt mert ezt tartom a legjobbnak. De érdekel mások véleménye is, miért és mire használ valaki Pl. qt-t.
    Mutasd a teljes hozzászólást!
  • Mivel nem láttam, mivel töltötted azt a 3,5 órát, ezért nem állíthatom biztosan, hogy valamit rosszul csináltál. De ha annyira rossz és használhatatlan lenne, mint ahogyan azt itt lefested (és nem a saját hibádból nem működött), akkor senki nem használná.
    Mutasd a teljes hozzászólást!
  • Nem mondtam, hogy jobb. Amúgy ha neked nem fizet a Microsoft ezért az észnélküli promóért, akkor szerintem ideje jelentkezned náluk, biztos szívesen alkalmaznának.
    Mutasd a teljes hozzászólást!
  • Egyáltlán nem vagyok rá mérges. Biztos jó meg szuper rendszer viszont. Ha leírnak valamit dokumentációban akkor elvárnám, hogy ha aszerint csinálom akkor az úgy működjön ahogy le van írva. Maga a fordítás futott 3órán át. Fél óra volt a dokumentáció alapján beállítgatni mindent ahogy kérte. Szuper! Nemtudom miért nem lehetett egy compiler választást implementálni mint a Code::Blocks-ban de sebaj hát van kezem megcsinálom. Viszont amikor leírják, hogy ha extra include útvonal kell akkor:
    INCLUDEPATH += path
    elvárnám, hogy ne dobjon ki mindent amiért 3.5órát kellett várnom. Nos ezt ugyan elvártam csak nem ez történt. A projektben ugyanis ettől fogva egyedül a "path" által megszabott headerek voltak elérhetőek és semmi egyéb. Hát jó akkor explicit átadjuk a Qt include mappát semmi gond maximum Qt/ include hivatkozások lesznek. Meglett minden header file erre fordításnál benyögte, hogy qmake not found.
    Na azért itt már elszakad az ember cérnája. Követem a dokumentációt és azzal nem jó. Sajnos én nem tudom azt mondani, hogy de Debianon így működik hát Fedorán biztos más... NEkem van 1 Windows annak egy Win32 API és püff. Vagy megy vagy nem. Hát ez a "vagy nem" álláspontra jutott és mikor megkérdeztem QT fórumon és a hatodik javaslat sem működött a téma törölve az accountom bannolva.
    Arról, hogy 64bites win7-en nem megfelelő a dokumentáció nemtudom miért én tehetnék. HA jó lenne működött volna. Csak nem ez következett be. Biztos jó dolog egyébként egy szóval sem mondtam hogy rossz kicsit fura egy csomó dolgot elfed ami Dx-hez nem nyerő ötlet de nem ez volt a fő probléma.
    Mutasd a teljes hozzászólást!
  • És mivel jobb a Qt mint a C#+Winforms ? Kivéve hogy tudod portolni az alkalmazásod linuxra amit mind az 1% linux felhasználó nagyon meg fog köszönni - bár fizetni nemigen fog érte. A másik oldalon pedig a .NET/winforms kombóval van WCF, EF, és egy rakás más jóság - nem beszélve arról hogy van WPF és Silverlight is. És egy rakás reporting tool és más hasonló eszköz közt választhatsz.
    Mutasd a teljes hozzászólást!
  • Örülök, hogy sikerült. Viszont nem tudom mitől vagy rá mérges. Nyilván, az első lépések minden új rendszernél nehezek tudnak lenni. Ami 3,5 órát végigszendvedtél most, azt máskor már nem kell. Lassan egy éve dolgozom Qt-ben és nagyon produktív vagyok benne. Igaz, hogy nehezebb volt az elején, mint egy C#+WinForms.
    Mutasd a teljes hozzászólást!
  • Igazából maradtam a WINAPI-nál...
    3.5óra alatt a dokumentáció alapján lefordítottam a forrást és zseniálisan használta a microsoft c++ compilert. Szintén dokumentáció szerint, miután rájöttem, hogy kellene még includepath hozzáadtam. Ezt követően eltünt minden más includepath... Semmi gond, visszapakoltam azokat is; mire válaszként eltünt a qmake. Szóval 5órányi igen kemény szenvedés után letöröltem az egészet a fenébe és 15perc alatt WINAPI.ból megírtam a GUI-t ami nekem kellett volna QT-ben szépen :).
    Mutasd a teljes hozzászólást!
  • Kipróbáltam a QT developert

    Minek? A VS-hez való SDK és designer plugin nem tetszett?

    szeretném megírok egy komplett ablakot egy D3Dfelülettel 3 különböző RenderTargetView-al

    Inkább szenvedsz az MFC-vel, jó döntés.
    Mutasd a teljes hozzászólást!
  • Elhiszem hogy ez csudi jó dolog mégis maradok LC javaslatánál. MFC natívan támogatott VS-ből és van normális compilerem. Kipróbáltam a QT developert de amikor megláttam mit kell szenvednek, hogy NE azt a szerencsétlen mingw-et használja hanem a Microsoft C++ Compilert akkor elszakadt a cérnám :). Mire megcsinálom, hogy úgy működjön ahogy szeretném megírok egy komplett ablakot egy D3Dfelülettel 3 különböző RenderTargetView-al. Szóval ez nekem így nem. Lehet, hogy később egyszerűbbé teszi a fejlesztést, hogy húzogathatom a komponenseket meg aranyos meg jól használható meg minden kb orrvérzésig csak éppen vagy kompromisszumokat kellene kötnöm amit nemtudok mert fixek az elvárások vagy szívjak vele annyi extra időt amennyi nekem nem éri meg.
    Mutasd a teljes hozzászólást!
  • Pár megjegyzés:

    QT-t természetesen lehet használni DirectX-el (pl. csinálhatsz olyan kontrolt QT-ben, ami Direct3D-ben renderelődik).
    Pl:

    DirectX with QT

    A QT egyértelműen profibb mint az MFC vagy a wxWidgets. De ha csak egyszerű GUI kell, akkor gondolom mindegy.

    Az MFC-t utoljára 2000-ben használtam, elég bénán volt tervezve, a Winapi-ra hajigált osztályok halmazának tűnt + valami elég erőltetett framewörk volt benne MDI-re (multiple document interface).

    Most belenéztem és nekem úgy tűnik, még mindig nincs benne egy tábla (grid komponens sem) meg még mindig nincs benne dinamikus layout. Ezek totál alap dolgok máshol (QT-ben is.).

    A wxWidet kicsit amatőrebbnek / csúnyácskábbnak tűnt nekem mint a QT, de ez csak egy személyes benyomás, wxWidgets-t épp csak pár tutorial erejéig nézegettem pár éve.

    QT esetén viszont én a QT Creatort használnám a Visual Studio helyett a helyedben.
    Mutasd a teljes hozzászólást!
  • Köszöntem ez volt eddig a legjobban használható válasz amit kaptam bár köszönöm a többieknek is természetesen. MFC-vel eddig még nemigen sokat foglalkoztam de akkor körülnézek ebben az irányban is hátha egyszerűbbé teszi az életem.
    Illetve még mindig témában vagyunk jelenleg a QT nem igazán játszik de ha már feljött az MFC egy keretrendszert azért már én is használtam egy 1-2éve. wxWidgets most, hogy olvastam merrefelé halad a dolog páran azt sérelmezik, hogy ez mennyire hasonlít az MFC-re. Ahogy elnéztem a D3D-vel sincs különösebb problémája. Valaki használja e manapság aki tudna róla mondani pár szót? Olvashatok a neten tudom de vagy csak mellette vagy csak ellene szóló elfogult kritikákat tudok olvasni.
    Mutasd a teljes hozzászólást!
  • Mire kell neked a keretrendszer ?
    Ha csak sima 3D-s tervezőprogramot akarsz csinálni, lényegében annyi GUI-val hogy bekéred a szerkesztendő fájl nevét, akkor valóban semmi szükséged Qt-re sem másra, sem másra. Ha van 100 felviteli ablak a rendszerben, akkor már bizony van értelme a dolognak. Bár ha D3D az alkalmazás akkor lehet hogy egy MFC jobb ötlet. Az meg hogy 0.120 ms vagy 0.6 ms alatt jön létre az ablak teljesen mindegy, nincs ember aki szemre meg tudná mondani a különbséget, és 1000 ablakot meg soha nem fogsz kirakni a képernyőre. Az meg hogy egy app 100 kilobyte-ot eszik vagy 20 megabyte-ot szintén nem igazán látszik meg ma amikor lassan a mobiltelefonok is 1GB RAM-mal indulnak.
    Mutasd a teljes hozzászólást!
  • Hordozhatóság sem kimondottan zavar én csak és kizárólag Windows platformra fejlesztek. Tehát, hogy a keretrendszer mindemellett nekem jó Linux-ra/MAC-ra/Mobil platformokra/Webre jó oké csak erre nekem nincs szükségem.
    Nézegettem az OpenGL-t is csak nem áll kézre, DirectX-el régebben is foglalkoztam (9.x korszak) nem igazán okozott gondot áttérni 10-re mondjuk eléggé megváltoztak a dolgok de végülis holtáig tanul az ember és ezt még jó is tanulni :)
    Mutasd a teljes hozzászólást!
  • Általában a (jó) keretrendszerekkel nem csak kényelmet/hatékonyságot nyersz, hanem hordozhatóságot is. Nem tudom, milyen programot írsz, de pl. a Qt a három fontos Desktop környezeten túl mobilplatformokra is létezik, míg a winAPI nem nagyon. Vagyis azokon is futó, vagy könnyen portolható kódod lesz. Nem is beszélve a technológiaváltásokról (pl. 64 bitre lépés mostanában, új Windows verzió) amihez a (jó) keretrendszert nyilván hozzáidomítják (vagy már meg is tették), míg a WinAPIval szenvedhetsz eleget, mire tényleg több rendszeren hatékonyan futó programod lesz.

    3D-hez nem értek, de hasonló okok miatt azt mondanám, hogy azért nézegesd a hordozható nyílt szabványokat is a platfromhoz kötöttek mellett. Ki tudja, mikor kell pl. webre menned.
    Mutasd a teljes hozzászólást!
  • Nem azt kértem, hogy minősíts engem bár köszönöm ezt a hasznos megjegyzést csak nem voltam rá túlságosan kíváncsi. Nekem az inkább zavaró ha nekem kellő változók/függvények elfedésre kerülnek és még külön bogarásszam ki őket.

    QtCreator értékelhető javaslatod már inkább érdekelté tett ki is próbáltam úgyhogy ezen a ponton kicsit pontosabb specifikációt adnék: Olyan keretrendszert keresek ahol nem kell spéci hacket keresni, hogy DirectX-et tudjak használni.

    Nem nagyon áll széndékomban Dx-ről OpenGL-re váltani mert egy keretrendszer köti a kezem akkor inkább basic Win32 ablak és majd D2D-vel építek GUI-t ami kicsit ágyúval a verébre de ha nem találok más alternatívát...
    Mutasd a teljes hozzászólást!
  • Hát talán próbáld ki a Qt Creatort.

    nekem a kódja oly mértékben érthetetlenül zagyvaság, hogy azt inkább nem kommentálom most.


    Ez meg inkább téged minősít szerintem.
    Mutasd a teljes hozzászólást!
  • Hát eltaláltad pont egy 3D szerkesztő féleségen dolgozom tanulásképpen. Sok energiát belefektetni nem gond amúgy is elég sok energiát elvesz a Dx10 mellette, hogy QT is hát istenem nem oszt nem szoroz.
    Mutasd a teljes hozzászólást!
  • Kicsit konkrétabban:

    winapival hogyan csinálod meg a következőt: egy adatbázisból lekérsz egy táblát. Ezt táblázatos formában megjeleníted. Minden második sor háttere más színű. A sorokat ki lehet választani, kiválasztásra bizonyos buttonok eanbled-ek lesznek (pl. a 'delete' button). Bizonyos cellákba duplaklikkre editálhatod, ha dátum, akkor date pickerből választas dátunmot, ha szám, akkor csak beírod. A számok jobbra vannak rendezve, a stringek balra. A column headerekre kattintva sortolsz az adott oszlopra.
    A táblázat adatait párhuzamosan egy bar charton is megjeleníted, ahogy editálod a táblázatot, úgy frissül a bar chart.

    Ez csak egy egyszerű és tipikus példa arra, hogy mik azok a témák, amikkel az ilyen framewökök és azok komponensei foglalkoznak.
    Mutasd a teljes hozzászólást!
  • A QT előnye a Winapi-hoz képest annál nagyobb, minél bonyolultabb GUI-t kell csinálnod. Mondjuk scrollpanek, tabbed panek össze vissza egymástól függve, rengeteg model és view egymásrahatás, nagyon sok kontroll, táblázatok, tre-table-ek, customizálások, stylesheetek. Egy olyan komplexitású GUI-t, mint egy 3D szerkezstő, az Eclipse, a NetBeans mindenképpen ilyenben kell írni. (Vagy írni egy saját komoly keretrendszert, de ahhoz nagy tpaasztalat kell és sok meló.)
    Egy komoly GUI rendszernek van tanulási ideje rendesen. Arra számíts, hogy relatíve sok energiát kell belefektetni a tanulásába, de ha megismered, akkor nagyon jó hatékony GUI programozó leszel. Ezszinte minden normálisabb GUI framewörkre vonatkozik, ha a sima WinAPI-val hasonlítjuk össze (pl. WPF, Swing, QT)
    Mutasd a teljes hozzászólást!
  • Üdv,

    Nos úgy gondoltam mivel nem jutok előrébb pont annyi érvet kapok keretrendszerek használatához ahány ellenérvet generálok magamnak első tesztelésnél kikérem tapasztaltabb szakmabeliek véleményét is.
    Eddig WINAPI-t használtam egyenesen amire én használtam pont elég volt. Most egy hajszálnyilval bonyolultabb dolgokat akarok ezért azt a javaslatot kaptam, hogy nincs értelme tovább haladni ilyen módon használjak keretrendszert.
    Kipróbáltam a QT-t aztán egy bő 5perc és össze-vissza kuszaság után le is töröltem. Aztán jött a wxWidgets ami nekem egy pöppet nagyon a MFC-re hasonlított blabla ne másszunk bele.

    Az emberek túlnyomó része a QT-t javasolta na most ennek értelmét én nem látom. Mire kialakítom a kis felületem annyi idő alatt egyenesen WINAPI-ból is összepakolom magamnak mivel Vizuális Editorja nem hajlandó együttműködni a VS2010-el valami csodálatos okból kifolyólag és nekem a kódja oly mértékben érthetetlenül zagyvaság, hogy azt inkább nem kommentálom most.

    Szóval mi ennek a konkrét előnye? Csak egy sima ablakot létrehoztam a saját osztályommal létrejött 0.120ms alatt már ha tudok adni a C++ beépített ctime függvényeire. Na most ugyanez QT-vel semmi extra létrejött 0.670ms alatt. Arról nem is beszélve hogy a feladatkezelőben majdhogynem háromszor annyi memóriát eszik. Ennek most ugye még nincs jelentőssége de később ha ráeresztem még az amúgy is memóriazabáló d3d-t akkor már elgondolkodom azon, hogy kell egy egyáltalán ez nekem. Szóval gyorsabb fejlesztésen kívül ami nekem egyáltalán nem fontos szempont van e más előnye?
    Mutasd a teljes hozzászólást!
abcd