Stringovi
Ako ste do sada intenzivnije koristili C i C++ sigurno znate kako da baratate stringovima. Međutim, način rada sa stringovima u Windowsu je malo drugačiji, jer u njemu postoji podrška za UNICODE karaktere. UNICODE predstavlja standard kodovanja teksta u 2 bajta memorije. On za razliku od ASCII sadrži većinu svetskih pisama, raznih simbola i slično. Zahvaljujući njemu, u Windowsu možemo da napravimo folder sa imenom "ћирлирца". Funkcije koje prihvataju parametre u UNICODE formatu su obeležene sa W (wide char), a one koje koriste standardni ANSI format sa A.
Za čuvanje podatka koji se posmatra kao ANSI string koristi se običan jednobajtni pokazivač char*, a za UNICODE string potrebno je koristiti poseban tip wchar_t koji predstavlja dvobajtni pokazivač (nešto kao short*).
Na osnovu ovoga Windows API definiše posebne tipove za rad sa stringovima:
LPSTR = char*
LPCSTR = const char*
LPWSTR = wchar_t*
LPCWSTR = const wchar_t*
Ukoliko želite da Vaš kod ima maksimalnu portabilnost, koristite makroe LPTSTR i LPCTSTR. Onda u zavisnosti od toga da li ste definisali simbol "_UNICODE" stvarni tip promenljive će biti char* ili wchar_t
LPTSTR = char* ili wchar_t* (zavisi od _UNICODE)
LPCTSTR = const char* ili const wchar_t* (zavisi od _UNICODE)
Ako želite da pozovete funkciju koja zahteva UNICODE argument i taj argument joj prenosite direktno u kodu, onda ga morate konvertovati u UNICODE. To radite jednostavnim pozivom makroa L. Na primer:
FunkcijaKojaZahtevaUnicodeTekst(L"Neki UNICODE tekst");
To be continued...