Skocz do zawartości

A & W


Law

Recommended Posts

A i W Oznacza typ znakow. I tak A to AnsiChar a W to WideChar. Ten pierwszy to standardowy typ znakow jaki znasz, czyli np. MARIUSZ. Zas drugi to dodatkowo do kazdego znaku dodawane jest zero, czyli: M0A0R0I0U0S0Z0. Taki sposob zapisu stosowany jest np. w nazewnictwie zasobow. Sa odpowiednie funkcje API, ktore moga formatowac naprzemiennie lancuch znakow. I teraz co do MessageBox, ta funkcja to to samo co MessageBoxA, ale nie to co MessageBoxW. W tej drugiej musial bys przekonwertowac odpowiedni lancoch Ansi do WideChar.
Najczesciej w programowaniu uzywa sie AnsiChar. Ale zobacz w strukture pliku wordowskiego (*.doc). Wszystkie teksty zapisywane sa jako WideChar.
Praktycznie wszystkie funkcje API, ktore w paramtrach potrzebuja lancucha znakow maja styl wyboru funckcji ( z koncowka A lub W).

Link do komentarza
Udostępnij na innych stronach

Twardy sie troche myli bo A to znaczy ze to jest kodowanie ASCII czyli 256znakow - co oznacza ze na jedne znak jest przeznaczony tylko bajt pamieci a Wide to jest Unikod czyli na kazdy znak przypadaja dwa bajty i jets on stosowany np w chinach gdzie jest bardzo duzo znakow - wtedy dzieki temu ze sa 2 bajty na znak to mozna pisac uzywajac 65tys znakow.
I jak uzyjesz funkcji MessageBox to w zaleznosci na jakim systemie kompilujesz to ci sie uruchomi odpowiednia wersja - jelsi kompilujesz na ASCII (np. polskie windowsy) to uruchomi sie MessageBoxA a jesli kompilujesz na Unicodzie (np. japoniski windows) to uruchomi ci sie funkcja MessageBoxW.

Link do komentarza
Udostępnij na innych stronach

Pewnie masz racje, tylko mi chodzilo w tym przypadku o delphi. W kodach zdodlowych MessageBox jest przypisany bezposrednio do MessageBoxA. I wlasnie w delphi sie stosuje AnsiChar na AnsiString i na odwrot WideChar jako WideString. A przyznam szczerze nie wiedzialem tak naprawde do czego praktycznie sluzy te WideChar. Funkcje do knwersji zankow to:
MultiByteToWideChar i WideCharToMultiByte

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...