Visual C++. Gotowe rozwiązania dla programistów Windows - ebook
Visual C++. Gotowe rozwiązania dla programistów Windows - ebook
Zostań znawcą środowiska programistycznego Visual C++
- Podstawowe funkcje i technologie systemu Windows w oczach programistów
- Praktyczne użycie funkcji WinAPI i biblioteki MFC
- Programowanie współbieżne dla procesorów wielordzeniowych
Środowisko programistyczne Microsoft Visual C++ idealnie nadaje się do wykorzystania w przypadku pisania programów dla platformy Win32 i jest chętnie wykorzystywane przez profesjonalnych programistów, tworzących aplikacje dla systemu Windows. Zarówno biblioteka MFC, jak i wbudowane funkcje WinAPI oraz możliwości programowania współbieżnego świetnie sprawdzają się w codziennej pracy programistycznej, oszczędzając czas, pozwalając na wykorzystanie mnóstwa kontrolek i funkcji, a także elastycznie dopasowując się do potrzeb tworzonej aplikacji.
Autorzy książki "Visual C++. Gotowe rozwiązania dla programistów Windows " skupiają się w niej nie tyle na opisie samego środowiska programistycznego, ile na możliwościach, jakie oferuje ono swoim użytkownikom. Po krótkim wprowadzeniu do projektowania interfejsu aplikacji przechodzą do kontroli stanu systemu, obsługi tworzonego programu, omówienia systemów plików, multimediów i rejestru, komunikatów Windows, bibliotek DLL oraz automatyzacji i wielu innych zagadnień. W publikacji tej znajdziesz gotowe odpowiedzi na wiele pytań dotyczących konkretnych kwestii programistycznych, rzeczowe porady oraz sposoby wykorzystania funkcji i technologii dostępnych podczas programowania w środowisku Visual C++.
- Projektowanie interfejsu aplikacji przy użyciu biblioteki MFC
- Kontrola stanu systemu
- Uruchamianie i kontrolowanie aplikacji oraz ich okien
- Systemy plików, multimedia i inne funkcje WinAPI
- Rejestr systemu Windows
- Komunikaty Windows
- Biblioteki DLL
- Automatyzacja i inne technologie oparte na COM
- Sieci komputerowe
- Programowanie współbieżne z OpenMP
- Biblioteka Threading Building Blocks
Dla tych, którzy w środowisku Visual C++ chcą się poczuć jak ryby w wodzie!
Spis treści
Wstęp (9)
Rozdział 1. Bardzo krótkie wprowadzenie do projektowania interfejsu aplikacji przy użyciu biblioteki MFC (13)
- Tworzenie projektu (13)
- Dodawanie kontrolki (15)
- Wiązanie metody z komunikatem domyślnym kontrolki (16)
- IntelliSense (17)
- Wiązanie komunikatów (18)
- Metoda MessageBox - trochę filozofii MFC (19)
- Okno Properties: własności i zdarzenia (21)
- Wiązanie zmiennej z kontrolką (22)
- Usuwanie zbędnych kontrolek (24)
- Analiza kodu aplikacji (24)
- Blokowanie zamykania okna dialogowego po naciśnięciu klawisza Enter (25)
- Więcej kontrolek (26)
- Kolory (29)
- Użycie kontrolki ActiveX (31)
Rozdział 2. Kontrola stanu systemu (33)
- Zamykanie i wstrzymywanie systemu Windows (33)
- Funkcja ExitWindowsEx (zamykanie lub ponowne uruchamianie systemu Windows) (33)
- Funkcja InitiateSystemShutdown (zamykanie wybranego komputera w sieci) (41)
- Hibernacja i wstrzymywanie systemu ("usypianie") za pomocą funkcji SetSystemPowerState (46)
- Blokowanie dostępu do komputera (49)
- Odczytywanie informacji o baterii notebooka (50)
- Kontrola trybu wyświetlania karty graficznej (52)
- Pobieranie dostępnych trybów pracy karty graficznej (52)
- Identyfikowanie bieżącego trybu działania karty graficznej (56)
- Zmiana trybu wyświetlania (57)
Rozdział 3. Uruchamianie i kontrolowanie aplikacji oraz ich okien (59)
- Uruchamianie, zamykanie i zmiana priorytetu aplikacji (59)
- Uruchamianie aplikacji za pomocą funkcji WinExec (60)
- Uruchamianie aplikacji za pomocą ShellExecute (62)
- Przygotowanie e-maila za pomocą ShellExecute (63)
- Zmiana priorytetu bieżącej aplikacji (63)
- Sprawdzenie priorytetu bieżącej aplikacji (65)
- Zmiana priorytetu innej aplikacji (66)
- Zamykanie innej aplikacji (67)
- Uruchamianie aplikacji za pomocą funkcji CreateProcess (68)
- Wykrywanie zakończenia działania uruchomionej aplikacji (73)
- Kontrolowanie ilości instancji aplikacji (74)
- Uruchamianie aplikacji w Windows Vista (75)
- Uruchamianie procesu jako administrator (76)
- Program z tarczą (78)
- Kontrolowanie własności okien (79)
- Lista okien (79)
- Okno tylko na wierzchu (83)
- Ukrywanie okna aplikacji (83)
- Mrugnij do mnie! (84)
- Sygnał dźwiękowy (84)
- Numery identyfikacyjne procesu i uchwyt okna (85)
- Jak zdobyć identyfikator procesu, znając uchwyt okna? (85)
- Jak zdobyć uchwyt głównego okna, znając identyfikator procesu? (86)
- Kontrolowanie okna innej aplikacji (90)
- Kontrolowanie grupy okien (94)
- Okna o dowolnym kształcie (98)
- Okno w kształcie elipsy (99)
- Łączenie obszarów. Dodanie ikon z paska tytułu (99)
- Okno z wizjerem (101)
- Aby przenosić okno, chwytając za dowolny punkt (102)
Rozdział 4. Systemy plików, multimedia i inne funkcje WinAPI (105)
- Pliki i system plików (funkcje powłoki) (105)
- Odczytywanie ścieżek do katalogów specjalnych (106)
- Tworzenie skrótu (.lnk) (107)
- Odczyt i edycja skrótu .lnk (110)
- Umieszczenie skrótu na pulpicie (112)
- Operacje na plikach i katalogach (funkcje WinAPI) (113)
- Operacje na plikach i katalogach (funkcje powłoki) (114)
- Operacje na plikach i katalogach w Windows Vista (interfejs IFileOperation) (116)
- Jak usunąć plik, umieszczając go w koszu? (118)
- Operacje na całym katalogu (119)
- Odczytywanie wersji pliku .exe i .dll (120)
- Jak dodać nazwę dokumentu do listy ostatnio otwartych dokumentów w menu Start? (124)
- Odczytywanie informacji o dysku (125)
- Odczytywanie danych (125)
- Testy (129)
- Kontrolka MFC (131)
- Ikona w obszarze powiadamiania (zasobniku) (137)
- Funkcja Shell_NotifyIcon (137)
- Menu kontekstowe ikony (138)
- "Dymek" (140)
- Multimedia (CD-Audio, MCI) (141)
- Aby wysunąć lub wsunąć tackę w napędzie CD lub DVD (141)
- Wykrywanie wysunięcia płyty z napędu lub umieszczenia jej w napędzie CD lub DVD (143)
- Sprawdzanie stanu wybranego napędu CD-Audio (143)
- Jak zbadać, czy w napędzie jest płyta CD-Audio (144)
- Kontrola napędu CD-Audio (145)
- Multimedia (pliki dźwiękowe WAVE) (147)
- Asynchroniczne odtwarzanie pliku dźwiękowego (147)
- Jak wykryć obecność karty dźwiękowej (147)
- Kontrola poziomu głośności odtwarzania plików dźwiękowych (148)
- Kontrola poziomu głośności CD-Audio (150)
- Inne (150)
- Pisanie i malowanie na pulpicie (150)
- Czy Windows mówi po polsku? (153)
- Jak zablokować uruchamiany automatycznie wygaszacz ekranu? (153)
- Zmiana tła pulpitu (154)
Rozdział 5. Rejestr systemu Windows (155)
- Rejestr (155)
- Klasa obsługująca operacje na rejestrze (156)
- Przechowywanie położenia i rozmiaru okna (162)
- Automatyczne uruchamianie aplikacji po zalogowaniu się użytkownika (165)
- Umieszczanie informacji o zainstalowanym programie (aplet Dodaj/Usuń programy) (169)
- Gdzie jest katalog z moimi dokumentami? (176)
- Dodawanie pozycji do menu kontekstowego związanego z zarejestrowanym typem pliku (176)
- Obsługa rejestru i plików INI za pomocą MFC (180)
- Przechowywanie położenia i rozmiaru okna w rejestrze (MFC) (180)
- Przechowywanie położenia i rozmiaru okna w pliku INI (MFC) (182)
- Skrót internetowy (.url) (183)
Rozdział 6. Komunikaty Windows (185)
- Pętla główna aplikacji (185)
- Obsługa komunikatów w procedurze okna (MFC) (187)
- Reakcja okna lub kontrolki na konkretny typ komunikatu (187)
- Lista komunikatów odbieranych przez okno (188)
- Filtrowanie zdarzeń (191)
- Przykład odczytywania informacji dostarczanych przez komunikat (191)
- Lista wszystkich komunikatów odbieranych przez okno i jego kontrolki (193)
- Wykrycie zmiany trybu pracy karty graficznej (193)
- Wysyłanie komunikatów (196)
- Wysyłanie komunikatów. "Symulowanie" zdarzeń (196)
- Wysłanie komunikatu uruchamiającego wygaszacz ekranu i detekcja włączenia wygaszacza (197)
- Wykorzystanie komunikatów do kontroli innej aplikacji na przykładzie Winampa (197)
- Przykłady reakcji na komunikaty (MFC) (198)
- Blokowanie zamknięcia sesji Windows (198)
- Wykrycie włożenia do napędu lub wysunięcia z niego płyty CD lub DVD; wykrycie podłączenia do gniazda USB lub odłączenia pamięci Flash (199)
- Przeciąganie plików między aplikacjami (201)
- Poprawny sposób blokowania zamykania okna dialogowego po naciśnięciu klawisza Enter (204)
- Zmiana aktywnego komponentu za pomocą klawisza Enter (205)
- XKill dla Windows (206)
- Modyfikowanie menu systemowego formy (208)
- Haki (210)
- Biblioteka DLL z procedurą haka (211)
- Rejestrowanie klawiszy naciskanych na klawiaturze (216)
Rozdział 7. Biblioteki DLL (217)
- Funkcje i klasy w bibliotece DLL (218)
- Tworzenie regularnej biblioteki DLL - eksport funkcji (218)
- Statyczne łączenie bibliotek DLL - import funkcji (220)
- Dynamiczne ładowanie bibliotek DLL - import funkcji (222)
- Tworzenie biblioteki DLL z rozszerzeniem MFC - eksport funkcji (224)
- Tworzenie biblioteki DLL z rozszerzeniem MFC - eksport klasy (224)
- Statyczne łączenie biblioteki DLL - import klasy (226)
- Tworzenie biblioteki DLL z rozszerzeniem MFC - eksport klasy. Modyfikacja dla dynamicznie ładowanych bibliotek (227)
- Dynamiczne łączenie bibliotek DLL - import klasy (228)
- Powiadamianie biblioteki o jej załadowaniu lub usunięciu z pamięci (230)
- Zasoby w bibliotece DLL (232)
- Łańcuchy w bibliotece DLL (232)
- Bitmapa w bibliotece DLL (234)
- Okno dialogowe w bibliotece DLL (237)
- Tworzenie apletu panelu sterowania wyświetlającego informacje o dyskach (240)
Rozdział 8. Automatyzacja i inne technologie bazujące na COM (249)
- Technologia COM (249)
- Osadzanie obiektów OLE2 (250)
- Statyczne osadzanie obiektu (251)
- Kończenie edycji dokumentu. Łączenie menu aplikacji klienckiej i serwera OLE (252)
- Wykrywanie niezakończonej edycji podczas zamykania programu (254)
- Inicjowanie edycji osadzonego obiektu z poziomu kodu (255)
- Dynamiczne osadzanie obiektu (256)
- Automatyzacja (258)
- Typ VARIANT i klasa COleVariant (258)
- Łączenie z serwerem automatyzacji aplikacji Excel (259)
- Uruchamianie aplikacji Excel za pośrednictwem mechanizmu automatyzacji (265)
- Uruchamianie procedur serwera automatyzacji (266)
- Eksplorowanie danych w arkuszu kalkulacyjnym (266)
- Korzystanie z okien dialogowych serwera automatyzacji. Zapisywanie danych w pliku (268)
- Zapisywanie danych z wykorzystaniem okna dialogowego aplikacji klienckiej (268)
- Edycja danych w komórkach Excela (269)
- Korzystanie z funkcji matematycznych i statystycznych Excela (271)
- Konwersja skoroszytu Excela do pliku HTML (273)
- Uruchamianie aplikacji Microsoft Word i tworzenie nowego dokumentu lub otwieranie istniejącego (276)
- Wywoływanie funkcji Worda na przykładzie sprawdzania pisowni i drukowania (278)
- Wstawianie tekstu do bieżącego dokumentu Worda (278)
- Zapisywanie bieżącego dokumentu Worda (279)
- Zaznaczanie i kopiowanie całego tekstu dokumentu Worda do schowka (280)
- Kopiowanie zawartości dokumentu Worda do komponentu CRichEditCtrl bez użycia schowka (z pominięciem formatowania tekstu) (280)
- Formatowanie zaznaczonego fragmentu tekstu w dokumencie Worda (281)
- Serwer automatyzacji OLE przeglądarki Internet Explorer (282)
- Własny serwer automatyzacji (284)
- Projektowanie serwera automatyzacji (284)
- Testowanie serwera automatyzacji (287)
- ActiveX (289)
- Korzystanie z kontrolek ActiveX (289)
Rozdział 9. Sieci komputerowe (293)
- Struktura sieci komputerowych (293)
- Lista połączeń sieciowych i diagnoza sieci (296)
- Aktywne połączenia TCP (296)
- Aktywne gniazda UDP (299)
- Sprawdzanie konfiguracji interfejsów sieciowych (300)
- Ping (302)
- Sprawdzanie adresu IP hosta (funkcja DnsQuery) (305)
- Sprawdzanie adresu IP i nazwy hosta (funkcje gethostbyaddr i gethostbyname) (307)
- Odczytywanie adresów MAC z tablicy ARP (311)
- Tablica ARP - wiązanie wpisów z interfejsem (314)
- Protokoły TCP i UDP (316)
- Tworzenie i zamykanie gniazda - klasa bazowa (316)
- Klasa implementująca serwer TCP (317)
- Klasa implementująca serwer UDP (319)
- Aplikacja działająca jako serwer TCP i UDP (320)
- Klasa implementująca klienta TCP (322)
- Klasa implementująca klienta UDP (324)
- Aplikacja działająca jako klient TCP i UDP (325)
- Serwer TCP działający asynchronicznie (funkcja WSAAsyncSelect) (327)
- Serwer TCP - użycie klasy CSocket (330)
- Klient TCP - użycie klasy CSocket (334)
- Inne protokoły sieciowe (336)
- Protokół FTP (przesyłanie plików) (336)
- Protokół SMTP (poczta elektroniczna) (343)
- Inne (350)
- Aby pobrać plik z Internetu (350)
- Mapowanie dysków sieciowych (350)
Rozdział 10. Wątki (353)
- Tworzenie wątków (353)
- Tworzenie wątku (354)
- Tworzenie wątku roboczego za pomocą MFC (355)
- Usypianie wątków (funkcja Sleep) (357)
- Czas wykonywania wątków (359)
- Wstrzymywanie i wznawianie wątków (361)
- Kończenie wątku (362)
- Funkcja TerminateThread (362)
- Funkcja ExitThread (362)
- Funkcje TerminateProcess i ExitProcess (363)
- Priorytety wątków (364)
- Priorytety procesu (365)
- Statyczna kontrola priorytetów wątków (369)
- Dynamiczna kontrola priorytetów wątków (370)
- Flaga CREATE_SUSPENDED (371)
- Wątek działający z ukrycia (373)
- Programowanie koligacji (374)
- Informacja o liczbie procesorów (funkcja GetSystemInfo) (374)
- Przypisywanie procesu do procesora (375)
- Odczytywanie maski koligacji procesu (377)
- Programowanie koligacji wątku (378)
- Wątki interfejsu użytkownika (380)
- Tworzenie wątku UI (380)
- Wykonywanie zadań w tle (383)
- Uwolnienie głównego okna aplikacji (385)
- Synchronizacja wątków (386)
- Wyzwalanie wątków za pomocą zdarzeń (387)
- Sekcje krytyczne (390)
- Semafory (zliczanie użycia zasobów) (393)
- Muteksy (398)
Rozdział 11. Programowanie współbieżne z OpenMP (403)
- Blok równoległy (405)
- Dynamiczne tworzenie wątków, zmienne środowiskowe i funkcje biblioteczne (407)
- Zrównoleglenie pętli (408)
- Sposoby podziału iteracji między wątki (417)
- Redukcja i bloki krytyczne (420)
- Sekcje, czyli współbieżność zadań (422)
- Zmienne prywatne i zmienne wspólne (427)
- Synchronizacja wątków (429)
Rozdział 12. Biblioteka Threading Building Blocks (431)
- Instalacja (432)
- Inicjalizacja biblioteki (434)
- Zrównoleglanie pętli (436)
- Rozmiar ziarna i podział przestrzeni danych (441)
- Pomiar czasu wykonywania kodu (443)
- Równoległa redukcja (444)
- Łączenie zrównoleglania pętli z redukcją (446)
- Równoległe przetwarzanie potoków (447)
- Wykorzystanie parallel_do (451)
- Własne przestrzenie danych (454)
- Równoległe sortowanie (457)
- Równoległe obliczanie prefiksu (458)
- Skalowalne alokatory pamięci (460)
- Kontenery (462)
- Wykorzystanie concurrent_vector (465)
- Wykorzystanie concurrent_hash_map (467)
- Wzajemne wykluczanie i operacje atomowe (468)
- Wykorzystanie blokad (470)
- Łączenie TBB z OpenMP (472)
- Bezpośrednie korzystanie z planisty (473)
- Tworzenie zadań za pomocą metody blokowania (474)
- Tworzenie zadań za pomocą metody kontynuacji (477)
Dodatek A: CUDA (481)
Skorowidz (507)
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-246-7796-2 |
Rozmiar pliku: | 14 MB |