文档章节

WinAPI 字符及字符串函数(14): CharToOem、OemToChar

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 293
阅读 183
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

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.

 
 
 
 
 

 

 

  
涂孟超
粉丝 13
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
加载中
请先登录后再评论。
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
664
1
SQLServer实现split分割字符串到列

网上已有人实现sqlserver的split函数可将字符串分割成行,但是我们习惯了split返回数组或者列表,因此这里对其做一些改动,最终实现也许不尽如意,但是也能解决一些问题。 先贴上某大牛写的s...

cwalet
2014/05/21
9.6K
0
【opencv】图形的绘制

1.矩形图像的绘制: 原函数:void cvRectangle(CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8,int shift=0) img就是需要绘制的图像 pt1 and pt......

其实我是兔子
2014/10/08
1.2K
1
beego API开发以及自动化文档

beego API开发以及自动化文档 beego1.3版本已经在上个星期发布了,但是还是有很多人不了解如何来进行开发,也是在一步一步的测试中开发,期间QQ群里面很多人都问我如何开发,我的业余时间实在...

astaxie
2014/06/25
2.7W
22
AFGPasswordTextField

AFGPasswordTextField 是 iOS UITextField 的之类用于密码的输入,你可以自动任何字符作为密码输入时的掩码 AFGPasswordTextFieldDelegate 协议在 API 上兼容 UITextFieldDelegate. 可通过 ...

匿名
2013/03/24
228
0

没有更多内容

加载失败,请刷新页面

加载更多

Azure Application Gateway(一)对后端 Web App 进行负载均衡

一,引言   今天,我们学习一个新的知识点-----Azure Application Gateway,通过Azure 应用程序网关为我么后端的服务提供负载均衡的功能。我们再文章头中大概先了解一下什么是应用程序网关...

osc_lc4icfkt
20分钟前
4
0
WoLai(我来) 注册码 ——国内版 notion 【笔记】

注册码: SQGYG23 ❤ W4T9PKP JLTHNJP KMTXK7P JDHKJEM KRJXX5P 6M7PPAP DEGLMG3 N3BZMRI 87BR22I GSIWGWP GNGBNTI QA8URIM UDUV9VM IHKJA7P MD9ZA3M 3XR67ZI TBUP9JX TI4TYMM 注册完了可以把......

osc_c05lkk3u
22分钟前
15
0
2020hdu多校第二场比赛及补题

这一场我们队只A了一题 1010 Lead of Wisdom 直接爆搜,但是T了好几发,剪了下枝 如果一个物品的a,b,c,d都比不上另外一个同种物品的a,b,c,d,那这个物品就可以直接淘汰掉了 #include<iostrea...

osc_usgpahnw
23分钟前
21
0
为什么Java有瞬态字段? - Why does Java have transient fields?

问题: 为什么Java有瞬态字段? 解决方案: 参考一: https://stackoom.com/question/3opS/为什么Java有瞬态字段 参考二: https://oldbug.net/q/3opS/Why-does-Java-have-transient-fields...

富含淀粉
23分钟前
16
0
轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议

概述说明 CAS Server默认搭建出来,客户端程序只能按照CAS自身的协议接入。CAS的强大在于,有官方的插件,可以支持其他的协议。本章节就让CAS Server怎么增加OAuth2.0的登录协议。 安装步骤 ...

osc_inj0cicw
24分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部