_TCHAR映射

来自RAD Studio
跳转到:航行,搜索

转到用于C++索引的Unicode


_C++Builder中的TCHAR映射旨在使编写可用于宽字符串或窄字符串的源代码更加容易。您可以将_TCHAR映射到wchar_t型烧焦以便代码使用所需的正确字符串类型RAD Studio框架和库或Windows API,因此RTL公司函数浮动到正确的定义(分别为宽或窄)。要设置_TCHAR映射到选项,使用项目>选项>C++(共享选项)对话框。

您的C++应用程序需要处理宽字符串和窄字符串:

  • C++RTL包含为这两者设计的例程烧焦wchar_t型.
  • Windows API通常很窄,需要烧焦.
  • RAD Studio框架和库使用宽字符串数据(Unicode),需要wchar_t型.

在与RAD Studio框架和库交互时,您需要使用广泛的RTL函数,或者在将数据传递到RAD Studio架构和库之前进行适当的转换。(请参见UTF-8转换例程.)

_沙皇在tchar.h头文件中有条件声明的,定义为类型定义(别名)映射到烧焦或至wchar_t型。当您想要编写可移植代码(可以与C++RTL、Windows API和RAD Studio框架和库交互)时,应该使用_TCHAR公司(而不是硬编码烧焦wchar_t型数据类型)。然后可以将_TCHAR映射选项调整为烧焦wchar_t型(位于C++(共享选项)第页)。例如,当前的_TCHAR映射设置控制应用程序是使用ANSI版本还是广泛版本的RTL浮点函数.

“_TCHAR映射到”选项

项目选项_TCHAR映射到控制的浮动定义_TCHAR公司在代码中。
_TCHAR公司可以映射或浮动到烧焦wchar_t型,如下表所示:

“_TCHAR映射到”选项的值:

烧焦
替代品烧焦对于_TCHAR公司.

注:此选项不适用于标准库和API函数的广泛定义。

wchar_t型
  • 替代品wchar_t型对于_TCHAR公司.
  • 设置两个联合编码_联合编码宏常量。
  • 浮动到标准库和API函数的广泛定义。


在“目录和条件”页面上设置“_TCHAR映射到”选项

使用 项目>选项>C++(共享选项) 对话框。

使用“_TCHAR映射到”wchar_t型RAD Studio框架和库

RAD Studio框架和库是用Unicode实现的,并且总是期望使用Unicode。默认情况下,_TCHAR映射到wchar_t型.

例如,除非将“_TCHAR maps to”选项设置为,否则以下代码不会编译wchar_t型:

TResourceStream*res=新TResourceStream(HInstance,ResourceId,RT_RCDATA);

如果“_TCHAR映射到”选项设置为烧焦,RT_RCDATA映射到字符*. RAD Studio框架和库预期wchar_t型*,所以烧焦如果您想使用RAD Studio框架和库,则设置是一个问题。

与一起使用“_TCHAR maps to”所需的代码更改wchar_t型

当_TCHAR映射到wchar_t型(默认设置),您的项目必须有一个名为_特曼_tWinMain(WinMain)。默认情况下,使用C++Builder创建的新项目具有这些入口点,但对于导入的项目,您可能需要手动添加这些入口点。

您还必须包括查尔。小时头文件,其中包含浮动定义和所需的入口点。有关tchar.h中包含的浮动函数的列表,请参阅浮动函数.

注:如果,而不是使用_特曼,您使用主要的作为入口点,链接器无法链接可执行文件。对于使用RAD Studio框架和库的新项目,向导会自动插入_特曼入口点。

使用_文本文本文字前的宏

要确保字符和字符串文字正确浮动到ANSI或Unicode,请使用_文本宏或_T型宏。例如:

::MessageBox(0,_TEXT(“消息”),_TEXT[“标题”),MB_OK);

使用_联合编码已定义_文本(或_吨)宏将文字字符串(字符)转换为L前缀形式;否则,_文本在不使用L(左)前缀。例如,如果您定义_联合编码,然后

_文本(“消息”)

转换为L前缀形式:

L“消息”

否则,此宏将在不使用L(左)前缀:

“消息”

另请参见