Zna ktoś dobry kurs cpp?

Zna ktoś dobry kurs cpp?

Wątek przeniesiony 2022-09-18 10:57 z C/C++ przez Riddle.

KO
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:12
0

Konkretnie chodzi mi o win32 API
Zna ktoś dobry i długi kurs z tego? Oby tylko nie był w innym języku niż angielski i nie skończył się po 5 filmach gdzie nauczę się tyle co nic.

KO
oczywiście może być też polski ale jestem prawie pewien, że nie ma dobrego
SP
SP
  • Rejestracja:prawie 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:181
1

Knowledge Distiller
AN
  • Rejestracja:prawie 19 lat
  • Ostatnio:około 7 godzin
1
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
1
Kostecko napisał(a):

Konkretnie chodzi mi o win32 API
Zna ktoś dobry i długi kurs z tego? Oby tylko nie był w innym języku niż angielski i nie skończył się po 5 filmach gdzie nauczę się tyle co nic.

Obawiam się, a nawet jestem przekonany, że nie wiesz naprawdę co to jest CPP (my piszemy C++).
Win32 API nie ma ABSOLUTNIE NIC wspólnego z C++.
Co wiecej, ma ogrom bytów, które nawet nie są czystym C, np Win321 string jest czymś totalnie odmiennym od C stringa, oczywiście też od C++ stringa

Obserwuję w innej dziedzinie, mikroprocesory, permanentne jak czkawka pijaka mody aby uczyć 2w1 : C (bo jest lepsze od C++, he he) i uP.
Wychodzą z tego ludzie, którzy maja religijne przekonanie o swoje wyższości, a nie znają ani na poziomie elementarnym C, najprostsze konstrukcje czy komunikaty ich rzucaja na kolana.

W Win32 API w roku 2022 nikt nie pisze. To se ne vrati pane Havranek. Być może to potrzebne twórcom utrzymaniowcom bibliotek GUI.
Od "wszystkomajacego" Qt przez lżejsze frameworki, po zupełnie leciutkie, rynek jest wypełniony o wiele bardziej użytecznymi bibliotekami. Są linkowanie dynamicznie (DLL), są statycznie.

Pisanie w gołym Win32 oznacza, ze zawsze będziesz miał naruszenia pamięci (twój post) i inne typowe problemy, wyczerpanie resourców, buffor overflowy itd

Nie spotkałem ani jednego "kursu Win32" o jakim piszesz, który by był kompletny, miał plan, przemyślany (i zrealizowany) spis treści.
Za czasów dinozaurow uczyłem się wydanej przez MS książki pana Petzolda (cegła na 1000 stron), i nie wierzę, aby dziś jakiś był 100% kompletny nie pochodząc od MS. Naprawdę dobry to będzie miał formę dokumentacji programistycznej, a nie kursu.

C++ (język standardowy) możesz poznawać, to krzywdy w karierze nie zrobi (choć wątpię, że to do końca zrobisz - ten jezyk tylko Pan Bóg zna na piątkę, twórcy na czwórkę, a my mamy szansę najwyżej na trójkę).


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
ZD
Inacej mówiąc, proponuję umiejętności podstawowe: naprawdę dobra znajomość standardowego językua + umiejętność pracy z dokumentacją, a nie mityczny "najlepszy kurs"
ZD
... i jednak zweryfikowanie tego zamiaru
SP
Szalony Programista2
Mi się kiedyś przydał ten win api, do narysowania kutasa na innej aplikacji oknie, za pomocą windows GDI. Widać jakieś profesjonalne zastosowania tego api są :> Ale takie typowo niskopoziomowe zastosowanie jak odczyt dysku bezpośrednio jak dd w linuxie. Jakieś otwieranie innych procesów i wysyłanie im do event queue wiadomości. Ale to wszystko to raczej reverse engineering, tak niskopoziomow to chyba nic nie warto na windowsie, bo od tego jest linux. Ale tak nic nie jest przenośne, a języki często mają możliwość programowania bez ograniczania się do danego systemu.
KO
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:12
0
ZrobieDobrze napisał(a):
Kostecko napisał(a):

Konkretnie chodzi mi o win32 API
Zna ktoś dobry i długi kurs z tego? Oby tylko nie był w innym języku niż angielski i nie skończył się po 5 filmach gdzie nauczę się tyle co nic.

Obawiam się, a nawet jestem przekonany, że nie wiesz naprawdę co to jest CPP (my piszemy C++).
Win32 API nie ma ABSOLUTNIE NIC wspólnego z C++.
Co wiecej, ma ogrom bytów, które nawet nie są czystym C, np Win321 string jest czymś totalnie odmiennym od C stringa, oczywiście też od C++ stringa

Obserwuję w innej dziedzinie, mikroprocesory, permanentne jak czkawka pijaka mody aby uczyć 2w1 : C (bo jest lepsze od C++, he he) i uP.
Wychodzą z tego ludzie, którzy maja religijne przekonanie o swoje wyższości, a nie znają ani na poziomie elementarnym C, najprostsze konstrukcje czy komunikaty ich rzucaja na kolana.

W Win32 API w roku 2022 nikt nie pisze. To se ne vrati pane Havranek. Być może to potrzebne twórcom utrzymaniowcom bibliotek GUI.
Od "wszystkomajacego" Qt przez lżejsze frameworki, po zupełnie leciutkie, rynek jest wypełniony o wiele bardziej użytecznymi bibliotekami. Są linkowanie dynamicznie (DLL), są statycznie.

Pisanie w gołym Win32 oznacza, ze zawsze będziesz miał naruszenia pamięci (twój post) i inne typowe problemy, wyczerpanie resourców, buffor overflowy itd

Nie spotkałem ani jednego "kursu Win32" o jakim piszesz, który by był kompletny, miał plan, przemyślany (i zrealizowany) spis treści.
Za czasów dinozaurow uczyłem się wydanej przez MS książki pana Petzolda (cegła na 1000 stron), i nie wierzę, aby dziś jakiś był 100% kompletny nie pochodząc od MS. Naprawdę dobry to będzie miał formę dokumentacji programistycznej, a nie kursu.

C++ (język standardowy) możesz poznawać, to krzywdy w karierze nie zrobi (choć wątpię, że to do końca zrobisz - ten jezyk tylko Pan Bóg zna na piątkę, twórcy na czwórkę, a my mamy szansę najwyżej na trójkę).

no tak, bo wszystko, co robimy musi być najlepsze, musi być uzasadnione i potrzebne. Nie można robić rzeczy dla siebie. Po co mam robić coś, co mi sprawia frajdę, przecież nikt inny tego nie robi. Przecież to jest stare, przecież to się różni od tego, co robiłem przez 2 lata.

Zadałem pytanie, czy zna ktoś dobry kurs, nie znasz? nie pisz, ewentualnie napisz, że bez sensu jest uczyć się starego A skoro można nauczyć się nowego i lepszego B.

Nie chcę nauczyć się tego win32 API, żeby napisać Windowsa od nowa czy inne zaawansowane programy, chcę się tego nauczyć aby zdobyć doświadczenie i dobrze się przy tym bawić, może nawet stworzyć coś, co MI będzie przydatne. A nóż widelec kiedyś mi się to przyda.

Wydaje mi się, a nawet jestem przekonany z jakim typem mam do czynienia. "Jestem lepszy od innych, każdy jest głupszy ode mnie. Początkującymi gardzę bo to debile, jak można nie wiedzieć czegoś, czego ja się dowiedziałem dopiero kilka dni temu" Wiesz, pisanie w Unity nie ma nic wspólnego z C# a jednak ktoś kto nie zna C# tworzy w nim gry.

Zobacz pozostałe 3 komentarze
ZD
@Kostecko: a wiesz, że wtedy zmarnujesz wszystko, co byś ewentaulnie wiedział o Win 3 API ? Cały misterny plan wpi..u
SP
Szalony Programista2
@ZrobieDobrze: nie do końca bo wszystko jest bardzo do siebie podobne, jak linuxie otwierasz device to plik open(filepath, ...) i na windowsie tak samo tylko masz jakieś fancy nazwy CreateFile, ale tak samo etap wygląda, open, read/write, close. Ja z win api nic nie pamiętam, jak czegoś potrzebujesz to robię tak dla przykładu chcę uruchomić zdalny wątek w jakimś procesie, kompletnie nie pamiętam co trzeba zrobić, znajduje CreateRemoteThread, tam widzę, że przyjmuje parametry jak handle, tworzysz wszystkie potrzebne parametry i uruchamiasz, jak np. handle to open process.
ZD
WM_XYZMESSAGE też ? A co do open() (dla publiczności: bez 'f' na początku), diabeł siedzi we flagach. Druga najbardziej nieprzenośna funkcja (choć powszechnie istniejąca) po ioctl()
SP
Szalony Programista2
event queue jest zależne od gui, winapi, QT, GTK, wszędzie wygląda to tak samo wysokopoziomowo wrzucasz swój event do kolejki i program go sobie wykona, ale implementacja niskopoziomowo jest inna. Wiadomo wszystko jest zbudowane po swojemu, ale działa na podobnej zasadzie, design pattern się nie zmienił.
ZD
@Szalony Programista2: rzeczy, o jakich piszesz, ja nazywam w tym wątku "ogólnymi umiejętnościami programistycznymi"
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
1

@Kostecko:

  1. zyjemy w wolnym kraju. Wolno ci się zajmować przestarzałymi technologiami - ale tym bardziej nie oczekuj, że ktoś będzie cie karmił w taki sposób, jaki sobie życzysz.

  2. Pomedytuj, jakie miejsce wq naszej kulturze zajmuje "kurs"
    Kurs montera fotowoltaiki (marki X - nie obejmuje przypadków nietypowych), kurs dla bezroboitnych (wkręcanie fi siedemnaście), nawet kurs na prawo jazdy - NIE UCZY jazdy po lodzie ani wyjeżdzania z zaspy, sportowych zakrętów, jazdy ekonomicznej (a nawet uczy techniki anty-ekonomiczne), ani nawet jazdy przyajznej dla ogółu (nazwijmy ją defensywną).

    Zawsze jest to wiedza / techniki (knowledge / skill) tylko do ograniczonego poziomu.
    NIE MA kursów wycinania trzustki, który by był obok wykształcenia chirurga (6 lat i wiecej)

    Nie ma kursów informatycznych w zakresie 100%, ani nawet nie zamierzają się do tego zbliżać. Kilka elementów, gdzie jest przód, a gdzie tył, pozytywna motywacja emocjonalna i tyle. Kursant, o ile wytrwa, zostanie na życie zawodowe z a) ogólnymi umiejętnościami programistcznymi b) dokumentacją API

  3. Ogólne umiejętności programistyczne to praca z projektami, debugowanie i analizowanie błędów i problemów. Ogół czynności uruchomieniowych (post wyzej wskazuje, że to leży). Płynna i naturalna praca z dokumentacją. To fundament.
    Dodam, w środowisku niezarządzanym / nie zabezpieczonym jak C + WIn32 API okazji do żmudnego debugowania będziesz miał 100x więcej (w porównaniu do Javy / C# - gdzie w 90% wręcz masz kursor na problemie)

a ja piszę cpp bo mi tak wygodniej, nie musze naciskać shifta. p w skrócie cpp oznacza plus(+) — Kostecko 36 minut temu

To zdanie BARDZO DUŻO mówi o twojej osobie. Ja, ja, ja. Nie będę zgadywał ile masz lat, ani używał slangowego okreslenia na ten wiek.

Najgorsze w windowsie jest to, że nie jest open source, Szalony Programista2 17 minut temu

Nie do końca. lepszy zamkniety a dobrze udokumentowany (fgakt, cierpi na np błędy, których nie wolno poprawić. jest funkcja BOOL winapi, która zawsze zwraca TRUE, opis podkreśla, ze nie zawsze sie uda, ale musi tak zostać) - nie nie udokumentowany opensurs.

oczywiście, że masz racje, od dawna wiadomo, że Linux jest lepszy niż Windows i w przyszłości raczej będę z niego korzystał ale na razie nie miałem z nim żadnej styczności ale w szkole będę miał. Na razie korzystam z Windowsa bo korzystam z niego od wielu lat. — Kostecko 4 minuty temu

O! Co za kategoryczne zdanie. Oparte na głębokiej wiedzy i przepruciu tysięcy bugów w dziesiątkach projektów.


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
edytowany 1x, ostatnio: ZrobieDobrze
KO
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:12
0

@ZrobieDobrze: Ale jaki to ma związek z moim postem? prujesz się niepotrzebnie do tego nikomu nie pomagasz. W ch. mam na ile lat mnie oceniasz czy twoje zdanie na to, że chce nauczyć się win32 api. Jeżeli chcesz mi faktycznie pomóc to napisz, co jest złego w uczeniu się tego i podaj jakiś inne, lepsze rozwiązanie. W ch. mam co w "naszej kulturze" oznacza słowo "kurs". Inny ludzie rozumieją i dają mi linki, o które proszę. Jeżeli nie chce mi pomóc to chyba wiesz, co możesz zrobić :)

edytowany 1x, ostatnio: Kostecko
ZD
"Inny ludzie rozumieją i dają mi linki, " - z których żaden nie jest, ani nie zbliża się do bycia "pełnym kursem". Do widfzenia
ZD
Sorry, ale jak znad zupy poprosisz o widelec, to ja dam ci łyzkę
KO
tyle, ze ty mi dałeś pałeczki a nie łyżkę, żadnej sensownej rady którą mógłbym wykorzystać albo coś z niej wynieść. " z których żaden nie jest, ani nie zbliża się do bycia "pełnym kursem"" dlatego prosiłem o dobre, kursy może nie pełne ale zawsze coś z nich się nauczę, jak masz lepszy, to mi je daj.
ZD
Poszukaj książki Petzold'a, może gdzieś kupisz na wtórnym rynku
NT
  • Rejestracja:ponad 2 lata
  • Ostatnio:ponad 2 lata
  • Postów:15
1

Starsze wydania książki pisanej przez Charles Petzold Programming Windows (eng) raczej fajnie oprowadzają po winapi. Jak to skumasz i bardziej szukał czegoś wygodnickiego wówczas kup nowsze wydanie i dostaniesz bardziej zmodernizowany content pod c#.

edytowany 1x, ostatnio: nie_tak_wiele_postow
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:16 minut
1
ZrobieDobrze napisał(a):

W Win32 API w roku 2022 nikt nie pisze. To se ne vrati pane Havranek. Być może to potrzebne twórcom utrzymaniowcom bibliotek GUI.

Ale wiesz że Win32 API to jest po prostu systemowe API pod Windows i wszystko z tego korzysta (choćby pośrednio), oraz że to nie tylko GUI?

Pisanie w gołym Win32 oznacza, ze zawsze będziesz miał naruszenia pamięci (twój post) i

We wszystkim można sobie strzelić w stopę.

inne typowe problemy, wyczerpanie resourców,

"wyczerpanie resource'ów" może było realnym problemem za czasów Windows < 4.0

ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
0
Azarien napisał(a):
ZrobieDobrze napisał(a):

W Win32 API w roku 2022 nikt nie pisze. To se ne vrati pane Havranek. Być może to potrzebne twórcom utrzymaniowcom bibliotek GUI.

Ale wiesz że Win32 API to jest po prostu systemowe API pod Windows i wszystko z tego korzysta (choćby pośrednio), oraz że to nie tylko GUI?

I tak, i nie.
Są podsytemy GUI (zwł. te ultraprzenośne), które same malują swoje widgety. Wtedy z natywnego systemu wykorzystują niewiele powyżej malowanie prostokąta , i zdarzenia mysz / kbd


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
KamilAdam
Ktoś tak robi oprócz Swinga?
ZD
Znalazł by w C++, choc z głowy nie przywołam. A nie jestem pewien, ze Król tak nie ma ...
Ktos
Flutter choćby też tak robi. I chyba Avalonia.
SP
SP
  • Rejestracja:prawie 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:181
1

Jak umiesz już podstawy programowania to ja bym ci polecał programowanie na cherry pick, czyli bierzesz to co najlepsze.

Jakiś program gui robisz nie ważne jaki, ważne żeby jakieś buttony porobić, gui, jakieś funkcję i zmienić jakąś zawartość w innym labelu.
Tutaj musisz popatrzeć jak działa event queue bo można postmessage wysyłać do innych aplikacji w ten sam sposób jak w twojej, można coś zlecać do zrobienia.

Proste połączenie sieciowe i prosty serwer, komunikacja w jaki sposób już dowolnie, ale jakieś bajty lub całe wiadomości.

Hacking, uruchamianie własnego kodu w innej aplikacji, mega chyba najlepsze do zabawy ze wszystkiego i windows jest do tego najlepszy najniższy prób do takiego manipulowania procesami ma.

Api ma dużo więcej możliwości, ale będą jeszcze bardziej skomplikowane, a to co ci podałem to jest najłatwiejsze do zrobienia i nie przejmuj się jak będziesz musiał zobaczyć kod jak to zrobić, bo czasem trzeba dużo nad czymś myśleć, żeby do czegoś dojść, ale można uczyć się od osób co już to przeszły.


Knowledge Distiller
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)