Programiranje

Stringovi

Published on 12/22,2008

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...


Leave a Reply

Dodaj komentar





Zapamti me

Comments