Grafikus program milyen rendszerben natív unmanaged C++-ban
2019-12-06T17:31:09+01:00
2019-12-09T14:09:46+01:00
2022-07-20T17:52:21+02:00
  • És fizesd rá a gatyádat is ha kereskedelmi licenszt szeretnél.

    LGPL a Qt túlnyomó része. Nyugodtan használhatod üzleti célokra is az open-source verziót, amíg dinamikusan linkelsz (betartod a LGPLv3 követelményeit).

    Igen amúgy drága dolog, amennyiben licence-lni kell, viszont alapból nem kell és nagyon kiforrt széles körben elterjedt könyvtár. Jól dokumentált, millió példával tutorial-al, én csak ajánlani tudom.
    Mutasd a teljes hozzászólást!
  • Annyira nagy megkötés hogy nem interpretált vagy JIT-es legyen, illetve a memóriafelszabadítás ne legyen automatikus? Vagy a C++ nyelv a nagy megkötés?
    Ezek azért vannak, mert tudnom kell Assembly részeket használni, valós számok memóriaképéhez hozzáférni (exponens és mantissza), címeket rendezni, stb.

    Nyugodtan tanuld meg a .Net WPF-et (vagy winformot, ha a deklarativ leírás nem a Te világod)
    Mindazt, ami fontos meg írd meg C, CPP, Assembly-ben
    Tudsz .Net-ből natív kódot hívni. Ezt szerintem az első google találat hozza, és kb 2 sort kell gépelned
    Ugyanazt a memóriát fogjátok használni, és fel tudod dolgozni a visszatérő értéket.
    Mutasd a teljes hozzászólást!
  • Csak grafikus felületben vagyok kezdő, programozásban nem, matematikában se.

    Köszönöm szépen a válaszokat egyébként.
    Mutasd a teljes hozzászólást!
  • Itt egy összehasonlítás rengeteg natív c++ gui libről:

    C++ UI Libraries • memdump
    Mutasd a teljes hozzászólást!
  • wxwidgets

    Ha már a wxwidgets szóbajött, akkor: Natív projekthez, ahol a gui mellékes, vagy olyan hobby projekthez, tanulóprojekthez, ahol az ember kifejezetten a modern a C++-t akarja gyakorolni, érdemes lehet a 'nana' nevű kis lightweight cross-platform gui libet is megnézni. Nem volt még alkalmam használni, de elsőre tetszik a friss modern c++-os megközelítés. (a lib filozófiája, hogy minél inkább standard c++ -like legyen.)

    Nana C++ Library - a modern C++ GUI library

    Komplex, csilivili gui készítésére valszeg nem optimális (olyasmire manapság én pl. reactjs-t használok.)

    Egy példa a főoldalról:

    int main() { using namespace nana; //Define a form. form fm; //Define a label and display a text. label lab{fm, "Hello, <bold blue size=16>Nana C++ Library</>"}; lab.format(true); //Define a button and answer the click event. button btn{fm, "Quit"}; btn.events().click([&fm]{ fm.close(); }); //Layout management fm.div("vert <><<><weight=80% text><>><><weight=24<><button><>><>"); fm["text"]<<lab; fm["button"] << btn; fm.collocate(); //Show the form fm.show(); //Start to event loop process, it blocks until the form is closed. exec(); }
    Mutasd a teljes hozzászólást!
  • És fizesd rá a gatyádat is ha kereskedelmi licenszt szeretnél. Ha már mindenképp C++-ban történő GUI fejlesztéssel akarod szívatni magad windowson akkor ott az MFC ingyen, vagy ha linuxot is szeretnél akkor ott a wxWidgets.
    Mutasd a teljes hozzászólást!
  • Biztos, hogy ennyire kezdőként annyira fontos hogy natív, unmanaged legyen és hogy te kezeld a memóriát ? Már csak azért is, mert egy ablakozós felületnél ez nem igazán szempont, pláne nem windowson, a nem ablakozós dolgoknál (játék) pedig amúgy sem ezeket használod.
    Mutasd a teljes hozzászólást!
  • Megtanulni grafikus felhasználói felületű programot készíteni.

    Akkor dobd a régi operációs rendszereket és ismerkedj meg a Qt-val :)
    Mutasd a teljes hozzászólást!
  • jó hír hogy sem az XP sem a Win7 nem támogatott a Microsoft részéről szóval felesleges erőltetni
    Mutasd a teljes hozzászólást!
  • Megtanulni grafikus felhasználói felületű programot készíteni.
    Nem önszorgalomból, de én döntöm el milyen nyelven legyen, stb.
    Annyira nagy megkötés hogy nem interpretált vagy JIT-es legyen, illetve a memóriafelszabadítás ne legyen automatikus? Vagy a C++ nyelv a nagy megkötés?
    Ezek azért vannak, mert tudnom kell Assembly részeket használni, valós számok memóriaképéhez hozzáférni (exponens és mantissza), címeket rendezni, stb.
    Mutasd a teljes hozzászólást!
  • Pontosan mi a célod? Csak önszorgalomból szeretnél desktop alkalmazásfejlesztést tanulni? Ez esetben miért szabsz ennyire meredek megkötéseket?
    Mutasd a teljes hozzászólást!
  • A 64 bites xp egy halom bug volt, és csak félig 64 bit. Gagyi volt még utána a vista is, azért nem terjedt el sosem. Xp-n 32 bitre számíthatsz. Egyébként ha bőven beleférsz 1 giga ramba, semmire kell neked a 64 bit, de attól még nem fogsz tudni w7 alól xp-re alkalmazást fordítani. A w7 idejében jött be a net 4, ami azt csinálta, hogy lecserélte a libeket a net 2 alatt is. A frissítés után a net 2 legacy is a net 4-en keresztül ért el alapokat, nem volt többé régi net. Xp alatt az még egy másik net a max 3.5-ös verziójával.
    Mutasd a teljes hozzászólást!
  • Mi a fenéért unatkoznék? Nem tudok normálisan grafikus programot készíteni, meg akarom tanulni. Először megérdeklődöm melyiket tanuljam meg.

    Pusztán párbeszédablak, meg egyebek kellenek, nem kell 3D meg egyéb, nem készítek CAD-et meg játékot se.

    Nem feltétel hogy Windows 2000-en menjen, de ha ehhez csak az kell hogy azon is működőt fordítson: úgy állítsam be a project adatait, akkor hát legyen. Windows 7-en viszont menjen, jó ha XP-n is. Én is tudom hogy a 64 bites Windows XP-nél jelent meg, így Windows 2000-ből nincs is 64 bites.

    Egyébként köszönöm a válaszokat. Én egyébként már ott elakadok, hogy ha C++-ban .Net-es programot választok a project létrehozásánál, akkor a régi kódjaim futnak-e: tudom hogy már van natív .Net, vagyis gépi kódra fordítja előre az egészet, nem JIT-es, de ugye ha minden egyes változódeklarációhoz oda kell írni hogy unmanaged, az elég nagy munka. WinForms és WPF esetén ugyanez.
    Mutasd a teljes hozzászólást!
  • A 64 bitre normális support windows 7 alatt érkezett. Előtte csak töredékek voltak, felemás dolgok. Ha w2k-ra futtatni akarsz, a 64 bitet elfelejtheted, sőt, a c++ sem jó választás. Idővel verzió változások voltak a c++ dll-eknél, és ha belecsüccsensz abba az időgépbe, lesz belőle olyan szívás, amit az ipari teljesítményű torkosborz kikérne magának.

    Pláne, hogy grafikát fejlesztenél - gondolom gpu alapon. Na a 2k években gpu sem volt, 3d sem volt, visual studio sem. És ami a 2k-t illeti, az is egy elszúrt windows verzió volt. A win98 után az xp volt az első megálló, amit használtak is a népek.

    Ha meg tudsz írni mindent a régi libekkel, van devc, annak a c fordítója még 32 bites, lib supportod szinte semmi, viszont abba könnyű asm-et is belepakolni (32 biteset ofc), meg a c dll szerkezet sem változott az idők során hála az égnek. A legjobb esélyed még azzal van talán. Lesz supportod xp-ig visszamenőleg. A 2k még erősebben winnt volt, az xp-t ugyan abból dolgozták át, de túl sokat változtattak, a 2k szerintem reménytelen. A programot xp alatt kell majd fordítanod, és grafikára maximum gdi-d van. Ami 3d modellezést akarsz magadnak, lőni forrás kód szintjén libet hozzá, és összerakod magadnak, képernyőre már csak a pixel buffer kerülhet ki, és arra jó a gdi is.

    És csak csöndben egy diplomatikus kérdés utoljára. Nagyon unatkozol?  
    Mutasd a teljes hozzászólást!
  • Szerintem úgy lesz a legegyszerűbb, ha elengeded a régi, már nem supportált platformokat. Amennyiben ezt megtetted, akkor a Qt tökéletes választás lehet számodra!
    Mutasd a teljes hozzászólást!
  • Qt      .
    Mutasd a teljes hozzászólást!
  • Nézd meg ezt!
    Mutasd a teljes hozzászólást!
  • A C++/CLI egy .Net -es dialektusa a C++-nak, tudja amit a sima C++, de emellett ismer .Net-es fogalmakat is: GC, reference class, managed heap, reflection, ismeri a .Net-es generics-et (ami nem ugyanaz mint a sima C++ template). Egy szó mint száz: ezzel tudsz egyszerre .Net-es dolgokat használni, miközben van a nyelvnek natív része is.
    Esetleg megírhatod a GUI részt a szokásos C#/WPF párosban, C++/CLI-ben meg megírod a natív részeket, a kettő meg tud kommunikálni mivel ugyanabban a .Net-es környezetben vannak. De szerintem nem muszály feltétlenül C#-ot használni a WPF-hez...
    Mutasd a teljes hozzászólást!
  • 32 és 64 bites Windows 7-hez és 10-hez fejlesztenék grafikus programot Visual Studio 2010-2019-ben, jó lenne ha korábbi Windowson is menne, Windows 2000-ig legfeljebb. Fontos hogy használhassak assemblyt, tehát natív program kell legyen: gépi kódra fordított, nem JIt-es vagy hasonló, és magam szabadítom fel a memóriát, tehát unmanaged legyen: ne tároljon más információt, csak amit én definiálok.

    A Windows API és az MFC ezeknek megfelel, nyilván MFC-vel sokkal egyszerűbb, ha Hello World!-nél összetettebb grafikus felületű programot írok.

    A legmodernebb tudtommal a WPF. Ez van egyáltalán C++-ban, vagy csak C#-ban? És ha van, natív unmanagedben van?
    Hallottam még a Windows Forms-ról, de sajnos erről se tudom hogy van-e natív unmanaged C++-ban.
    Nem igazán vagyok vele tisztában hogy a C++/CX, CLI meg ilyesmik mit jelentenek, a C++/CX úgytudom Windows Store-be feltölthető programokat készít, ezekben kevesebb kernelhívás érhető el, és ha jól tudom managed.

    Lehet hogy más grafikus rendszer is van, amikről nem hallottam. Lehet hogy nem is grafikus rendszernek hívják. Melyiket válasszam? Írtam már grafikus programot C#-ban és C++-ban MFC-ben, de azok nem sokat tudtak, és mindent ami kellett úgy kerestem ki a súgóból, szóval nem igazán látom át, jelenleg nincs magabiztos tudásom, még egy hibaüzenet ablaknak is utána kell nézzek hogy lehet megcsinálni, meg egy egyszerű szöveg ablakba kiírásának is.
    Mutasd a teljes hozzászólást!
abcd