tajper.pl - celne typy sportowe, ma³e ryzyko, wysokie zyski, bezpieczne wygrane!

Archiwum kategorii C++

Monitorek dla posiadaczy Samsunga 959nf

C++, Konnekt / IMBrak komentarzy

Wtyczka służy do sterowania… nie, nie tosterem, a monitorem ;) Dokładnie Samsungiem 959nf (i prawdopodobnie kompatybilnymi z MouScreen, ale za to nie ręczę).

Dokładny opis w wątku na forum Konnekta. Redaktorów serwisów informacyjnych, prosi się o nie pisanie o tej wtyczce. Nie wiadomo czy będzie u kogokolwiek działać (poza mną), nie ma co robić zbędnego szumu ;]

Tak przy okazji - obsługa USB jest straszna, póki co umiem tylko zmieniać ustawienia monitora, pobrać danych nie umiem - a wiem że monitor przesyła je w ten sam sposób w jaki je dostaje… LibUSB ma oczywiście dość kiepską dokumentację.

Wykorzystanie funkcji niedostępnych w starszych systemach

C++Brak komentarzy

Co zrobić kiedy do programu dodajemy funkcję, która działa w systemach z serii NT? Wydaje się że wystarczy sprawdzić w kodzie wersję systemu i ewentualnie pominąć pewne fragmenty kodu. Niestety nie jest to rozwiązanie, tak skompilowany program/biblioteka na starszym systemie się nie uruchomi.

Rozwiązanie jest trochę trudniejsze. Omówię to na przykładzie SetLayeredWindowAttributes. W zasadzie dochodzą tylko 2 linie kodu:

BOOL (WINAPI *WinSetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD); // tworzymy zmienną - wskaźnik na funkcję
WinSetLayeredWindowAttributes =(BOOL (WINAPI *)(HWND,COLORREF,BYTE,DWORD))GetProcAddress(GetModuleHandle("USER32"),"SetLayeredWindowAttributes"); // Ładujemy funkcję
if(WinSetLayeredWindowAttributes)
{
    // Jeżeli funkcja jest dostępna
}
else
{
   // obsługa dla starszych systemów
}

Tak załadowana funkcja nie będzie przeszkadzała w ładowaniu biblioteki i umożliwi pracę na starszym systemie.

Drag’n'drop buttonów na toolbarze

C++15 komentarze

Zastanawiałem się w jaki sposób zrobić drag’n'drop buttonów na toolbarach, niby jest wbudowana funkcja, ale ta pozwalała na usunięcie buttona - a tego nie chciałem. Tak więc zabrałem się za swoje rozwiązanie - wydawało się że będzie ciężko - lecz tak na prawde jest banalne :)

Czytaj więcej…