WinAPI字符及字符串函數(shù)(14):CharToOem、OemToChar

字號:

CharToOemBuff、OemToCharBuff 與 CharToOem、OemToChar 的區(qū)別只是前者可以指定要轉(zhuǎn)換的字符數(shù).unit Unit1;
    interface
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;
    type
    TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    end;var
    Form1: TForm1;
    implementation
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);var
    Buf: PWideChar;
    AnsiBuf: array[0..255] of AnsiChar;
    begin
    Buf := '萬一的 Delphi 博客';
    CharToOem(Buf, AnsiBuf);
    ShowMessage(string(AnsiBuf)); {萬一的 Delphi 博客}
    FillChar(AnsiBuf, Length(AnsiBuf), #0);
    CharToOemBuff(Buf, AnsiBuf, 6);
    ShowMessage(string(AnsiBuf)); {萬一的 De}
    end;procedure TForm1.Button2Click(Sender: TObject);var
    str: string;
    p: PAnsiChar;
    begin
    str := '萬一的 Delphi 博客';
    p := GetMemory(256);
    CharToOem(PChar(str), p);
    ShowMessage(string(p)); {萬一的 Delphi 博客}
    FreeMemory(p);
    p := GetMemory(256);
    CharToOemBuff(PChar(str), p, 6);
    ShowMessage(string(p)); {萬一的 De}
    FreeMemory(p);
    end;procedure TForm1.Button3Click(Sender: TObject);var
    AnsiBuf: PAnsiChar;
    Buf: array[0..255] of Char;
    begin
    AnsiBuf := '萬一的 Delphi 博客';
    OemToChar(AnsiBuf, buf);
    ShowMessage(string(Buf)); {萬一的 Delphi 博客}
    FillChar(Buf, Length(Buf), #0);
    OemToCharBuff(AnsiBuf, buf, 6);
    ShowMessage(string(Buf)); {萬一的}
    end;procedure TForm1.Button4Click(Sender: TObject);var
    AnsiStr: AnsiString;
    p: PChar;
    begin
    AnsiStr := '萬一的 Delphi 博客';
    p := StrAlloc(256);
    OemToChar(PAnsiChar(AnsiStr), p);
    ShowMessage(string(p)); {萬一的 Delphi 博客}
    StrDispose(p);
    p := StrAlloc(256);
    OemToCharBuff(PAnsiChar(AnsiStr), p, 6);
    ShowMessage(string(p)); {萬一的}
    StrDispose(p);
    end;
    end.