MFC w roku 2008

MFC czyli zestaw pomocniczych klas dla środowiska Microsoft Visual Studio C++ od nowego roku zostanie wzbogacony w kilka nowych komponentów graficznych, takich jak m.in. znany z Office11 ribbon, listy menu, kontrolki dokujące znane z Visual Studio i kilka innych:

http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx

Dla mnie jest to duże zaskoczenie, że po tylu latach niepublikowania tych wszystkich komponentów graficznych, które de facto wprowadzały nowe standardy w graficznych interfejsach użytkownika, firma Microsoft zdecydowała się nagle dać szansę na darmowe skorzystanie z tych komponentów (bez używania płatnych, których nie brakuje).

Jedni się cieszą, ale na listach dyskusyjnych pojawiły się głosy, że może to również spowodować upadek firm takich jak CodeJock, BCGSoft lub prędzej indywidualnych programistów, którzy tworzą komponenty zgodne z nowymi elemetami graficznymi wprowadzanymi sukcesywnie w produktach Microsoftu.

Nieudokumentowane funkcje Windows XP

Pierwszy artykuł dotyczy funkcji pozwalających na tworzenie archiwów ZIP korzystając bezpośrednio z funkcji eksportowanych z biblioteki NTDLL.dll

http://www.literatecode.com/2006/11/11/how-to-write-your-own-winzip/

Drugi artykuł prezentuje wykorzystanie nieudokumentowanych funkcji kryptograficznych SHA1 z biblioteki ADVAPI32.dll

http://www.literatecode.com/2006/12/18/undocumented-windows-cryptography/

Nadesłał: antonone 

Jak flushować pliki INI

Jakiś czas temu próbowałem tworzyć kopię zapasową pliku INI, który właśnie został zaktualizowany 2 linijki kodu wyżej i czego bym nie zrobił, wykonanie kopii zapasowej nigdy nie udawało się (plik nie zawierał wcześniej wprowadzonych zmian).

Próbowałem nawet jakichś dziwnych sposobów z użyciem funkcji Sleep, ale nic nie dawało rezultatów, ostatecznie z braku dalszych pomysłów (i nie aż tak ważnej roli tego kodu) porzucilem pomysł na wykonywanie tychże kopii zapasowych.

Dzisiaj zupełnie przypadkowo zobaczyłem na jakiejś stronie wywołanie funkcji WritePrivateProfileString z wszystkimi parametrami ustawionymi na NULL i jak się okazało to było to czego kiedyś szukałem – konkretnie powoduje zapisanie zmian wprowadzonych do pliku INI na dysk lub do rejestru (jeśli plik jest mapowany).

Zgodnie z dokumentacją na stronie MSDN, pliki INI są cache’owane, aby zwiększyć wydajność działania systemu operacyjnego.

Morał z tej historii taki, że jak już się czyta dokumentację, to nie należy kończyć na opisie parametrów i zwracanych wartościach 🙂

C Minus Minus

C– to język pośredni pomiędzy dowolnym innym językiem programowania, a kompilatorem i linkerem generującym binarny kod x86.

Suppose you are writing a compiler; how will you get quality machine code? You might write your own code generator—but that’s a lot of work. You might use somebody else’s: perhaps VPO, MLRISC, or the gcc back end. But each of these impressive systems has a rich, complex, and ill-documented interface, and furthermore, to use MLRISC you must write your front end in ML, to use gcc you must write it in C, and so on. You might generate C, if you can live without multiple results in registers, proper tail calls, computed gotos, accurate garbage collection, and efficient exceptions.

You would be much happier with one portable assembly language that could be generated by a front end and implemented by any of several code generators. Such a language should serve as the interface between high-level compilers and retargetable, optimizing code generators. Authors of front ends and authors of code generators could cooperate easily. C– is that language.

http://www.cminusminus.org/

Cyfrowe podpisywanie aplikacji

Cyfrowe podpisywanie aplikacji stało się popularne dzięki firmie Microsoft, która wprowadziła dodatkowe „zabezpieczenia” w systemie Vista, które ostrzegają przed uruchamianiem instalatorów niepodpisanych cyfrowo aplikacji (o driverach nawet nie wspominam), co oczywiście w epoce terroryzmu i wszechobecnego poczucia lęku przed złem wszelakim, wywiera wpływ na to, czy użytkownik zainstaluje „zagrażające bezpieczeństwu” oprogramowanie, czy posłucha przestrogi w groźnie wyglądajacym oknie dialogowym.

UAC Digital Sign

Cyfrowe podpisywanie wzbudza też wiele kontrowersji na listach dyskusyjnych dla programistów, gdyż certyfikaty kosztują po kilkaset dolarów z rocznym terminem ważności (jeśli ktoś kiedykolwiek wygenerował sobie parę kluczy RSA za darmo tym bardziej może to frustrować), a przewaga cyfrowo podpisanych aplikacji nad wersjami niepodpisanymi, czy inaczej mówiąc wpływ na decyzję użytkownika co do użytkownia aplikacji również jest kwestionowana.

Dokładny artykuł opisujący krok po kroku cyfrowe podpisywanie aplikacji:
http://www.tech-pro.net/code-signing-for-developers.html