WinApi - czy jeszcze żyje? Kto i do czego używa?

0

Cześć,
od pewnego czasu uczę się programować w C++ i obecnie jestem na etapie przejścia na wyższy poziom tj. na aplikacje okienkowe. Zacząłem się więc zastanawiać, czy w WinApi to się jeszcze w ogóle programuje? A jeśli tak to jakiego typu projekty? jakie ma ono zalety a jakie wady w stosunku do konkurencyjnych bibliotek (jakich?)? Czy jest sens inwestować czas w WinApi?
Wszyscy na nie narzekają, bo jest już stare etc. ale na pierwszy rzut oka wygląda stosunkowo prosto a możliwości również są chyba duże. Natomiast dla C++ nie ma wielu alternatyw - chyba tylko Qt... W dodatku WinApi jest darmowe...
pozdrawiam i dziękuję z góry za Wasz udział.

0

A jeśli tak to jakiego typu projekty?

Raczej nikt "poważny" nic większego w tym nie pisze.
Jedynie jeżeli ktoś paranoicznie boli się aplikacji o jakże porażającym rozmiarze 1.5 megabajta, to czasami można właśnie takie aplikacje spotkać (często np.keygeny oraz podobne są napisane w czystym WinAPI).

Czy jest sens inwestować czas w WinApi?

Dla samego faktu wiedzy, może i tak, ale nic większego w tym nie napiszesz - zbyt mozolna i nieopłacalnie czasowo robota.

W dodatku WinApi jest darmowe...

Wymaga całego Windowsa - gdzie tutaj jest coś darmowego?
Na przykład Qt tak dla odmiany jest darmowe (afair do zastosowań niekomercyjnych).

9
  1. WinAPI to nie tylko okienka. Praktycznie wszystko co się dzieje pod Windowsem () przechodzi przez WinAPI.
    (
    ) z wyjątkiem Windows Runtime czyli Metro pod Win8 oraz zarzuconego już chyba Services for Unix.

  2. Każda biblioteka okienkowa pod Windows (Qt, WinForms, WPF, GTK+, VCL, MFC, wxWidgets, ...) korzysta w mniejszym, większym lub całkowitym stopniu z WinAPI. Ktoś te biblioteki musiał napisać, lub chociaż przeportować z np. Linuksa na WinAPI.

  3. Mówienie że WinAPI jest stare to mówienie że Windows jest stary. Może prawda, ale bez znaczenia.

  4. Zaczynanie nauki od WinAPI niekoniecznie ma sens. Lepiej poznać coś łatwiejszego. Ale do bardziej zaawansowanych rzeczy WinAPI przynajmniej jako "wstawka kodu" bywa niezbędne.

Nie ma alternatywy dla WinAPI, bo jest to natywny interfejs systemu operacyjnego. Są co najwyżej nakładki.

Poza tym, definicja co jest w WinAPI a co nie jest jest dość niejasna.
Czy biblioteki, które mają własne nazwy marketingowe, ale będące częścią Windowsa, zaliczają się do WinAPI?
Konkretnie, czy: GDI, GDI+, DirectDraw, Direct3D, Direct2D, DirectShow, DirectSound, Windows Imaging Component i OpenGL to jeszcze WinAPI czy już nie WinAPI? (pytanie retoryczne, zresztą odpowiedź może być różna dla poszczególnych tych bibliotek)

0

Dziękuję wam bardzo za Wasz udział w wątku ;) - szczególnie @Azarien-owi, za tak obszerne wyjaśnienie ;-)
pozdrawiam.

0

Może to moje odczucie, ale WinAPI nie zgrywa się dobrze z programowaniem obiektowym. Przynajmniej to z czego się uczyłem WinAPI nie uczyło programować obiektowo w tym.

0
mcoder napisał(a):

Może to moje odczucie, ale WinAPI nie zgrywa się dobrze z programowaniem obiektowym. Przynajmniej to z czego się uczyłem WinAPI nie uczyło programować obiektowo w tym.

Może dlatego, że jest napisane w czystym C ;-)

0

To teraz szczerze. Szkoda, że nikt mnie nie uderzył gumową pałą po karku gdy się uczyłem WinAPI, a nie np. Qt. Co z tego, że zrobię program 400KB jak pisze się go długo, ciężko szuka błędów i często trzeba wymyślać koło na nowo. W Qt by było 40MB, ale o wiele prostsze plus na wiele systemów.

0

Zajrzałem w ten wątek w względu na temat. Wedlug mnie w WinAPI fajnie się pisze i można się wiele nauczyc. Ja piszę pod WinAPI może od nieco ponad roku i na moje potrzeby to co chciałem stworzyłem. Większośc jednak kodów jest "do szuflady" i na pewno nie są one iedale.

Tylko, że ja wolę pisać pod Delphi, konkretnie 7 ze względów objętościowych koncowego exeka. A do C/C++ mam awersję, a z braku czasu i trochę ambicji na naukę w innych językach nie piszę. A podsumowanie @mcoder mnie zaskoczyło. Żeby exek ważył 40 MB, to ja myślałem, że to co generuje 64 bitowy Lazarus nawet po sttripie w VCL ponad 2 MB to za dużo. A jak ze względów na upierdliwe AntyWirusy z "pupki" virustotal wykywa mi w UPXniętej dllce false positives. Także jak mi dllka wąży aż 43 kb to uważam że to dużo, a tutaj 40 MB exeki z niczym konkretnym się potrafią generować?! "What da hell", jak mawia jedne zagrajmer co to przestał kręcić z czasem ciekawe vlogi ;)

0

Właśnie miałem zakładać taki sam temat, a tu proszę, jak znalazł.

Azarien napisał(a):
  1. Zaczynanie nauki od WinAPI niekoniecznie ma sens. Lepiej poznać coś łatwiejszego. Ale do bardziej zaawansowanych rzeczy WinAPI przynajmniej jako "wstawka kodu" bywa niezbędne.
    To od czego zacząć naukę?

Dygresja: Przekopując internet trafiłem na stwierdzenie, że Microsoft odchodzi od klasycznych programów na rzecz wieloplatformowych aplikacji do Windows Store, oczywiście z interfejsem Modern UI.
Czyli docelowo Pulpit i klasyczne programy, w Windows 8 mają mieć taką samą funkcję, jak cmd.exe we wcześniejszych Windowsach? Czy raczej 50/50 z Modern UI? Całkowite przejście na Modern UI byłoby "trochę" trudniejsze niż z DOSa na Windowsa. Może następne wersje systemu powinny nazywać się Pages? Pages 2014? Dla mnie bomba.

Wracając do nauki. Może lepiej rzucić C++ i uczyć się C#?

1 użytkowników online, w tym zalogowanych: 0, gości: 1