Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Konverzije stringova,karaktera u Visual C++

[es] :: C/C++ programiranje :: Konverzije stringova,karaktera u Visual C++

[ Pregleda: 2193 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mladenvasic
Mladen Vasic
Doboj

Član broj: 50512
Poruke: 124
81.93.72.*



Profil

icon Konverzije stringova,karaktera u Visual C++17.04.2006. u 07:30 - pre 219 meseci
Imam nekoliko pitanja:
1. Koji tip lokalizacije da koristim, Multi-Byte ili Unicode
2. Koja je razlika izmedju njih
Ako koristim Unicode lokalizaciju na svakom koraku mi trazi da konvertujem jedan tip stringa u drugi:
3. Kako da vrsim konverziju izmedju sledecih tipova: LPWSTR, LPSTR, LPCWSTR, LPCTSTR, CStringA, CStringW, CString

AKO MOZE DA MI NEKO MALO POJASNI KORISTENJE UNICODE I MULTI-BYTE LOK. I AKO IMA NEKIH PRIMJERA....
HVALA
 
Odgovor na temu

Alex21
Zagreb

Član broj: 89590
Poruke: 24
82.193.194.*



Profil

icon Re: Konverzije stringova,karaktera u Visual C++18.04.2006. u 08:41 - pre 219 meseci
Unicode je u pravilu bolji od Multy-Byte ekodiranja, pogotovo kad je riječ o lokalizacijama softwera.

Osnovna razlika između njih je u enkodiranju znakova.
Multi-byte koristi code page shemu. Znak može biti 1 ili 2 byta dužine, gdje se kod 2 byte, gornji koristi za definiranje specijalnog raspona znakova ovisno o odabranoj kodnoj stranici. Unicode pak koristi 2 bytnu reprezentaciju znakova čime se pokriva čitav raspon svih znakova (kineski , japanski ...)

Princip kodnih stranica se koristio na Win95/98/98Me, dok se na Win NT, Win2000, WinXP i nadalje koristi Unicode shema, dakle još jedan razlog zašto koristiti Unicode. Naime, ukoliko je aplikacija buildana na Multi-byte shemi, a vrti se na Unicode OS-u, unosiš overhead jer operativni sustav mora interno raditi konverzije tipova.

Pošto spominješ CString zaključujem da je riječ o MFC-u.
MFC pruža podršku za Unicode (_UNICODE switch) i Multi-byte (_MBCS switch) u odvojenim bibliotekema.
Sam CString podržava oba, jer se bazira na TCHAR tipu, pa kod _UNICODE buildanja TCHAR se mapira u 16-bitni wchar_t, dok se kod _MBCS buildanja mapira u obični char.

Ono što treba pripaziti je da prilagodiš sve tipove. char u wchar_t,... zatim, sve one stare dobre CRT funkcije ako ih koristiš
(atoi, strcmp, fprintf,...) se mijenjaju u svoju unicode braću (_wtoi, wcscmp, fwprintf,...).
Uz to moraš koristiti makroe _T() i _L():
npr.
CStringObj.Insert(0, "Bla bla");
prelazi u CStringObj.Insert(0, _T("Bal bla"));

Uglavnom, za detalje pročešljaj MSDN i sve bude jasno.

Pozdrav
 
Odgovor na temu

[es] :: C/C++ programiranje :: Konverzije stringova,karaktera u Visual C++

[ Pregleda: 2193 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.