zoukankan      html  css  js  c++  java
  • WinAPI 字符及字符串函数(14): CharToOem、OemToChar

    CharToOemBuff、OemToCharBuff 与 CharToOem、OemToChar 的区别只是前者可以指定要转换的字符数.
    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.
    
  • 相关阅读:
    TabLayout + ViewPager
    分别用ToolBar和自定义导航栏实现沉浸式状态栏
    阶段一:用Handler和Message实现计时效果及其中一些疑问
    阶段一:为View设置阴影和弹出动画(天气应用)
    阶段一:通过网络请求,获得并解析JSON数据(天气应用)
    阶段一:解析JSON
    阶段一:AsyncTask的三个属性值和四个步骤
    Android Studio你不知道的快捷键(三)
    Android Studio你不知道的调试技巧
    Android Studio你不知道的快捷键(二)
  • 原文地址:https://www.cnblogs.com/del/p/1328362.html
Copyright © 2011-2022 走看看