Press "Enter" to skip to content

Tag: c++

Władca czasu

Chyba wrócę do bycia interopem. Można dostać euforii (żeby nie nazwać tego inaczej) kiedy wywołuje się w swoim kodzie czyiś kod, zwłaszcza, jeżeli nie był on dedykowany specjalnie na Twoją platformę. Kiedy wywołujesz jakąś losową dllkę, napisaną w czymkolwiek pod cokolwiek… a już najwyższym stopniem tejże euforii będzie … wywołanie funkcji z dllki systemowej. Takiej wiecie, System32 czy coś… takiej, no weźmy kernel32.dll. Brzmi strasznie. Zróbmy coś, od czego komp nie wybuchnie. Ustawmy mu czas.

Podstawy c# – czyli jak zapalić na ekranie lampkę od capslocka ;)

Pomysł na aplikację wyszedł w trakcie jednej z rozmów z moim narzeczonym, dłuższy czas temu. Chodziło o to, żeby wygodnie zasygnalizować, czy świeci się capslock. Oczywiście informuje nas o tym dioda na klawiaturze, ale chcieliśmy coś większego. Aplikacja wyszła całkiem prosta, a więc nadaje się do wyjaśnienia kilku podstaw.

Misz masz: kod/ACTA/forum

Miałam napisać parę słów, na temat tego, co się u mnie działo ostatnio. I coś tam naskrobię, w kolejności bodaj odwrotnej do chronologicznej (od najnowszego do najstarszego). Skorzystam z tego, że rwę noc.

 

Sprawa 1:  q3k postawił forum dla listków.  Jest ono dostępne na http://listekklonu.q3k.org/bbs/index.php . Nielistki ofc też mogą się rejestrować i używać. W końcu informacja chce być wolna.

Sprawa 2. Zakodziłam sobie (i każdemu kto chce się pobawić) pingera. Na wypadek, gdyby komuś się chciało pingiem ACTA pomścić. Aplikacja dostępna pod piatkosia.k4be.pl/Pinger.exe .  Jedyne czym mogę się „pochwalić” to będzie kod raptem jednej funkcji, którą musiałam napisać. Resztę wygenerował mi visual w procesie tworzenia designu. Prymitywny windows forms, na 1 rzut oka widać.

Operator new – kilka słów na jego temat

Operator new – kilka słów na jego temat

Operator new, jak zapewne wszyscy wiedzą służy w językach obiektowych/ zorientowanych obiektowo do kreacji nowych obiektów. W przypadku języka C++ używamy go również do tworzenia zmiennych dynamicznych typów wbudowanych, na które pokazuje wskaźnik. Zmienna dynamiczna bowiem sama w sobie nazwy niestety nie ma. Ale ma adres który można przypisać do wskaźnika, a to nam w zupełności wystarczy do posługiwania się nią. Zmienna dynamiczna nie podlega prawom zakresu ważności (co innego wskaźnik, który na tą zmienną pokazuje). Jeżeli w danym zakresie ważności mamy dostęp do przynajmniej jednego wskaźnika na zaalokowany obszar pamięci, będzie od dostępny. Tracimy zmienną dopiero po użyciu bliźniaczego operatora delete (którym nie będziemy się zajmować w tym artykule).  Wybaczcie mi to masło maślane.
Zmienne tworzone dynamicznie w języku c++ nie są zerowane, należy o tym pamiętać.
Artykuł ten stanowi vademecum posługiwania się tym operatorem na (prawie) wszystkie możliwe sposoby. Ograniczymy się przy tym do języka c++. Ma on także za zadanie rozbudzić waszą ciekawość do zbadania tego, co nieznane.

Spolszczyłeś visual studio? Możesz mieć problemy.

Oczywiście zacznijmy jak zwykle od scenki sytuacyjnej. Zapisałam się na kurs programowania na WP7 (windows phone 7). Niestety nie wyniosłam z niego wiele. Powód? Błędy w przygotowaniu IDE ( w tym przypadku instalacja visual studio 2010, expression studio, silverlight 4 enu, silverlight for windows phone tools, oraz windows phone developer tools). Wszystko miałam. Zainstalowane w takiej kolejności, jaka była podana w mailu. Ale…. I tak coś nie działało. Nie do końca przygotowana poszłam na kurs, z intencją, że prowadzący pomoże mi rozwiązać problem związany ze środowiskiem. Zwłaszcza, że nie działał mi także linker w c# oraz visual basic.
Prowadzący poradził mi, abym podobnie przeinstalowała wszystko. Jak się zapewne domyślacie, trochę to trwało. W tym czasie co najwyżej mogłam patrzeć co robią, ale nie mogłam się tym pobawić:(. Poza tym poszukując rozwiązań, tylko kątem oka patrzałam co się dzieje. No i DONE. Zainstalowało się.

hexdump

Czasami zdarza się, że człowiek nie ma aktualnie potrzebnego narzędzia.  Pobieranie z neta jest albo niemożliwe, albo zajmie zbyt dużo czasu, a człowiek chce plikowi w bebechy zajrzeć. No i poczułam coś takiego i klepnęłam taki kawałek kodu (thx widmo za podpowiedź co do zmiany define na wartość predefiniowaną)

Walka z kodowaniem

Chciałabym nawiązać do posta, w którym pisałam o kodowaniu (jego kopia znajduje się tutaj).
Próbuję kodzić coraz więcej ( w tym przypadku na system windows) i zaczyna mi przeszkadzać już fakt konwertowania

gżegżółką po każdej poprawnej kompilacji, i kompilacja wyniku. Mogłabym dodać wersję tego programu i utworzyć

makefile ale…
Zawsze to nadprodukcja śmieci i dodatkowe dziesiątki milisekund i operacje na plikach, których możnaby uniknąć.
Jest na to sposób. A mianowicie (działa tylko przy czcionce Lucida Console, przy standardowej krzaczy:( )

wystarczy na początku wpisać linijkę system(„chcp 1250>NUL”); zaś na końcu programu , system(„chcp 852>NUL”); by

zostawić tak, jak jest defaultowo. Aaa i nie mylić NUL z NULL, tam serio nie ma błędu. Nie zapomniałam tego L. Po

prostu tak się ten pseudo plik zwie. Obecnie mój kod wygląda niestety tak

wtf czyli filozofowanie nt. c++

Dobra. Jakiś czas mnie nie było, może zacznę więc od krótkiego co u mnie. Jakiś tydzień temu wyszłam z dołka i nadrabiam zaległości, poza tym semestr zakończyłam bez poprawki, z wynikiem „do przyjęcia”, choć mogło być lepiej.
Tak się ostatnio bawię kodem, bo mi się nudzi. Nie wychodzi z tego zbyt wiele, ale zawsze coś. Jestem z natury „filozofką”, chciałam zobaczyć, czy przypadkiem programowanie c-like nie jest w cpp tylko jako nakładka dla wstecznej kompatybilności. W jaki sposób szukałam tego dziwnego „czegoś”? Szukałam obiektowości tam, gdzie wg języka C nie powinno jej być, a mianowicie w interpretowaniu jako klas typów wbudowanych, struktur i unii.

zabawa

Ostatnio się bawiłam w kodzie. (Thx idlecode za podsunięcie pomysłu) i wyszło mi coś takiego. Poziom może niski, ale przynajmniej działa. Jak co pejstnę: #include…