C++ a C# i WinAPI

0

Hey,
od jakiegoś czasu uczę się programować w C++ jednak zastanawiam się czy nie porzucić tego na rzecz C#. Niestety nie do końca rozumiem ideę C# - czy to jest tak, że w C# nie muszę korzystać z WinAPI bo wszystko jest już w .NET Framework? Czytam, czytam i nic do mnie nie dochodzi :( a póki co mam za mały poziom w programowaniu, żeby to do mnie docierało z praktycznego punktu widzenia. Z resztą do WinAPI jeszcze w ogóle nie dotarłem - wiem tylko, że jest to coś związane z windowsem (gdy chcemy tworzyć okienka czy korzystać z myszki(?))

Po drugi chciałem się zapytać czy ciężko będzie przejść z czystego C++ na C#? z tego co czytam to C# jest łatwiejszy - czy to prawda? Ja się już przyzwyczaiłem do wielu rzeczy w C++ i nie jestem pewny czy one będą takie same lub podobne w C# :/. Czy np. wskaźniki są w C#? No i do tego ta pełna obiektowość...

Z tego co czytam to ogólne zasady są te same tj. deklarowanie zmiennych, pętle, instrukcje, tablice etc. więc gdzie te różnice? czy są one poważne?

Proszę o jakieś w miarę rzetelne info za które z góry dziękuję.

Pozdrawiam

0

Nie musisz korzystać z WinAPI (zresztą w C++ też nie musisz), ale nie wszystko jest we Frameworku. Czasami trzeba wywołać jakąś funkcję WinAPI — ale nie rzeźbimy w WinAPI okienek, przycisków itp.

WinAPI to zestaw funkcji udostępnianych przez sam Windows: zarówno do tworzenia interfejsu użytkownika jak i wykonywania operacji niewizualnych (np. działania na plikach, obsługa myszy, klawiatury, zarządzanie procesami.....)
WinAPI jest jednak bardzo skomplikowane w użyciu. Dlatego nie korzysta się z niego bezpośrednio: istnieje wiele bibliotek, z .Net Framework włącznie, które robią to za nas, udostępniając znacznie łatwiejszy do ogarnięcia zestaw klas i funkcji.

Po drugi chciałem się zapytać czy ciężko będzie przejść z czystego C++ na C#

trudno mi nazwać C++ „czystym” a C# „nieczystym”.
C# to nie jest C++ z dodatkami, ani nie jest to okrojony C++. C# to inny język, choć o podobnej składni (podobieństwo to było celowe).

C# jest łatwiejszy - czy to prawda?

uważam że tak.

nie jestem pewny czy one będą takie same lub podobne w C#

niektóre będą takie same, niektóre podobne, a niektóre nie.

Czy np. wskaźniki są w C#?

są, ale rzadko się ich używa. Ze względu na specyfikę języka, nie są potrzebne. Używa się ich do współpracy z bibliotekami tworzonymi w C/C++ które ich użycia wymagają, lub dla polepszenia wydajności np. przy przetwarzaniu obrazów. Na pewno nauki C# od wskaźników się nie zaczyna.

więc gdzie te różnice? czy są one poważne?

Znajomość C++ na pewno będzie ci pomocna.
Podstawowa, najpoważniejsza różnica to to, że w C# jakiś obiekt tworzymy (poprzez new), używamy go, a potem… zapominamy o nim. Nie trzeba robić delete.

0

Po raz kolejny bardzo, bardzo Ci dziękuję Azarien! :)
W takim razie chyba się skuszę na C# (szkoda, że tak późno :/ - chociaż tak jak mówisz, zdobyta wiedza na pewno będzie pomocna :) ).
Pozdrawiam

0

Nie musisz pisać bezpośrednio korzystając z funkcji WinAPI, ale znajomość WinAPI na pewno Ci nie zaszkodzi, a wręcz pomoże zrozumieć mechanizmy, z którymi potem się zetkniesz korzystając z pośrednich bibliotek, poza tym pisząc oprogramowanie prędzej czy później będziesz musiał skorzystać bezpośrednio z WinAPI, np. chcąc wykorzystać nowe funkcje systemu operacyjnego lub zrobić coś "nietypowego".

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