Typy LPWSTR i LPSTR

0

Witam,
Chciałbym zadać praktyczne pytanie odnośnie typów danych LPSTR i LPWSTR.

Linki w dokumentacji:
http://msdn.microsoft.com/en-us/library/cc230355%28v=prot.10%29
http://msdn.microsoft.com/en-us/library/cc230353%28v=prot.10%29

Z tego co widzę typu różnią się długością (jeden ma 8 bajtów, a drugi 32).

  1. Czy mogę bezpiecznie rzutować typ (char*) na LPWSTR?
  2. Jaki sens używać w WinAPI oddzielnego typu do obsługi łańcuchów?
  3. Czy mogę bezpiecznie rzutować typ (LPSTR) na (LPWSTR)? Kiedy należy uważać?
0

1 i 3 - nie - rozwalisz kodowanie znaków
2 - to nie są oddzielne typy, ale zwykłe typedef'y LPSTR to char*, a LPWSTR to wchar_t*. Czyli są to najzwyklejsze wskaźniki.
Jest jeszcze LPTSTR który jeżeli jest zdefiniowane makro UNICODE to jest LPWSTR, a jeżeli nie to LPSTR.

char od wchar_t różnią się rozmiarem - char to 1 bajt, a wchar_t to 2 bajty i dzięki temu może pomieścić znaki UNICODE, konkretnie UTF-16

0

OK, dziękuje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1