[WinAPI] jak zacząć, jakiś kurs czy coś


(rozwalkompa) #1

Na forum jeden z użytkowników napisał, że zamiast używać modułu WinGraph lepiej przeżucić się na WinAPI, bo wtedy pisze się aplikacje do Windows'a.

Niestety jestem początkującym programistą i znam tylko Pascal'a. Potrzebuję pomocy, a przez Google ciężko znaleźć, bo najwięcej kursów jest dla C++

Z góry dziękuję i pozdrawiam


(Lasinski Jacek) #2

rozwalkompa , jeśli znasz już Pascala, poczytaj o Object Pascal'u.


(Ryan) #3

Object Pascal == Delphi == Free Pascal.

W razie wątpliwości: WinApi to zbiór API (funkcji bibliotecznych) pozwalających na pisanie aplikacji pod Windows. Jedyne co z biegu mogę polecić to:

http://www.freepascal.org/docs.var

Jest tam link do dokumentacji WinApi na FTP Borlanda (dokumentacja na potrzeby Delphi, ale Free Pascal to praktycznie takie darmowe Delphi właśnie).

Tutorial porównujący WinApi pod C++ i pod Delphi (a więc i FP):

http://www.codexterity.com/raw-delphi/

Generalnie jednak sugeruję zacząć się uczyć C. :slight_smile:


(rozwalkompa) #4

Kiedyś próbowałem C++ i Javy 2 Mobile Edition, ale oba te języki są obiektowe.

I właśnie mam problem, bo w szkole nie mieliśmy programowania obiektowego i nie było do kogo się zwrócić o pomoc, gdy czegoś nie jarzyłem. Kursy nie odpowiadają na wszystkie pytania, niestety.

Ale co zrobić, trza się wziąć do nauki...


(Ryan) #5

To pisz w C, nie jest obiektowe ani trochę. :slight_smile:


(rozwalkompa) #6

To w czym C jest lepsze od Pascal'a?


(Ryan) #7

W ilości materiałów, w tym, że większość API jest natywnie w C lub C++, w tym, że ma większy wybór kompilatorów i narzędzi do deweloperki. Ma też lepszą semantykę i funkcjonalności, których Pascal nie ma (np. TMP).


(somekind) #8

Ja odwróciłbym to pytanie i zapytał, w czym Pascal jest lepszy od C.

A później zastanowiłbym się nad brakiem jakiejkolwiek sensownej na nie odpowiedzi. Żadnych argumentów przemawiających za Pascalem także nie ma, oprócz tego, że istnieje pewna grupa ludzi, która uważa go za język łatwy i idealny na początek.

C ma prostszą, logiczniejszą i bardziej przejrzystą składnię (choćby to, że zamiast BEGIN i END używa się { i }, zawsze to 2 znaki zamiast 8, a kod jest o wiele czytelniejszy)

Ponadto są logiczniejsze instrukcje. Na przykładzie pętli - jaki sens ma istnienie dwóch oddzielnych typów pętli, jednej do liczenia "w górę", drugiej "w dół" (chodzi o taki pascalowy twór jak pętla FOR DOWNTO) Przecież to można rozwiązać przy użyciu jednej pętli (tak jak w C).

Do tego budowa C - sam w sobie ma niewiele instrukcji - cała reszta funkcji nie jest elementami języka, są to funkcje zewnętrzne, biblioteczne, mogące ulegać modyfikacjom. To dzięki temu język ten jest tak wszechstronny i rozszerzalny, i powstało tyle kompilatorów i wersji C na różne platformy.

I sprawa chyba najważniejsza - na C wzoruje się bardzo wiele innych, przydatnych języków, np.: C++, Java, C# PHP

Reasumując - we wszystkim :slight_smile:


(rozwalkompa) #9

Ale to Pascal'a uczą w szkołach, a przynajmniej w mojej.

A jak zacząc pisać pod Windows'a, bo programy tego typu (konsolowe):

#include 

#include 


using namespace std;


int main()

{

    int a;

    cout<<"Tekst" << endl;

    getch();

    return 0;

 }

to ja se mogę pisać w Pascal'u.

W Dev-C++ jest opcja projektu aplikacji Windows, ale nie wiem co dalej...


(Ryan) #10

Pisanie w WinApi wymaga odrobiny samozaparcia. Początki są trudne (dużo nowych koncepcji do załapania) ale kiedy się je zrozumie, kod płynie spod palców sam. :wink: Powiedzmy, że sam. W sieci jest od groma niezłych tutoriali, np:

http://www.winprog.org/tutorial/

Generalnie należy przyswoić sobie kilka rzeczy

  • co to callback

  • jak tworzy się obiekty (kontrolki)

  • jak wysyła się wiadomości do kontrolek

Kiedy zrozumie się te trzy rzeczy (i jeśli jest się w stanie napisać w miarę solidny kod w C) można bez przeszkód pisać aplikacje okienkowe.


(somekind) #11

Ale to nie jest żaden argument. Ja zacząłem się uczyć C jeszcze w podstawówce, gdy na informatyce był DOS, Word i Excel. A pierwszy raz Pascala wymagała ode mnie babka na jednym przedmiocie na studiach. A i tak pisałem w C++ 8)

Możesz nawet w Brainfucku, ale niewiele na przyszłość Ci z tego przyjdzie. Pomyśl o tym.

Jeśli chemy tylko tworzyć aplikacje okienkowe, to możemy sobie znacznie ułatwić życie używając jakiegoś nowocześniejszego RAD, np. http://dobreprogramy.pl/index.php?dz=2&id=2036&t=134 dla C++, czy też http://dobreprogramy.pl/index.php?dz=2&id=2035&t=134 dla C#. Co też polecam, bo nie traci się czasu na wklepywanie kodu rysującego kontrolki na ekranie, tylko przeciąga się je z toolboxa. Proste jak rysowanie w paincie :wink:


(Ryan) #12

To nie RAD tylko środowisko deweloperskie. RAD to chwytliwa nazwa na metodologię tworzenia aplikacji w środowiskach Borlanda (Rapid Application Development). No i nie polecam MFC. Moim zdaniem więcej z MFC kłopotów niż zysku. Całkiem niezłe jest wxWindows (i przenośne), ale ma sporo błędów.


(somekind) #13

Rapid Application Development jak sama nazwa wskazuje oznacza środowiska przyspieszające tworzenie aplikacji, głównie poprzez usprawnienie prototypowania, czyli tworzenia interfejsu. Środowiska RAD w tym celu udostępniają programiście wiele gotowych komponentów i umożliwiają tworzenie metodą drag&drop.

Jak najbardziej Visual Studio, Visual C# Express i Visual C++ Express to środowiska RAD.


(Ryan) #14

Application development = tworzenie aplikacji. W j. polskim "application" jest w dopełniaczu a nie w mianowniku a całość jest charakterystyką "procesu tworzenia". To nie jest aplikacja. Środowisko RAD jak i aplikacja RAD to niepoprawny, choć często spotykany skrót myślowy (powinno być "środowisko do RAD" lub "środowisko wspierające RAD" oraz "aplikacja powstała w procesie RAD"). To paradygmat programowania przez szybkie prototypowanie a nie typ aplikacji. Sugeruję poczytać na ten temat, bo materiałów jest sporo. :wink:


(somekind) #15

No okej, mój błąd gramatyczny i nieodpowiedni skrót myślowy. Co nie zmienia faktu, że podane przeze mnie aplikacje, to środowiska wspierające RAD, a użyłem tego skrótu w celu podkreślenia tej właśnie cechy - umożliwienia programiście szybkiego tworzenia aplikacji.

To przecież to samo napisaliśmy :slight_smile:

Mam dość czytania o inżynierii oprogramowania już po zeszłym semestrze. Wakacje w końcu mam podobno. Ale od października znowu będę musiał.


(rozwalkompa) #16

Dzięki.

Poczytam, popróbuję.

Jak czegoś nie załapie, to napisze.

(a nie macie po polsku?)

sam instalator ma 500 MB (wg komentarzy), przy moim łączu - dzięki...


(Lasinski Jacek) #17

rozwalkompa , instalator tyle nie waży z tego co pamiętam to coś około 50 MB.


(rozwalkompa) #18

Powiem więcej: sama instalka ma 3 030 kB, ale instalacja jest w trybie online.

jeden z komentów:


(Lasinski Jacek) #19

rozwalkompa , żeby nie było że jestem gołosłowny. Sama instalka zajmuje ~70 MB, dokumentacja ~250 MB, SQL Server Express 2005 ~55 MB. Żeby zacząć programować wystarczy Ci sama instalka środowiska.

cppfq7.png


(rozwalkompa) #20

Dobra, nieważne. Tylko sugerowałem się komentarzami.

Pozdrawiam :smiley: