`

tchar是什么类型 &&dynamic_cast&&L TEXT和 _T的区别

 
阅读更多

Windows为了消除各编译器的差别,重新定义了一些数据类型。CHAR为单字节字符。还有个WCHAR为Unicode字符,即不论中英文,每个字有两个字节组成。如果当前编译方式为ANSI(默认)方式,TCHAR等价于CHAR,如果为Unicode方式,TCHAR等价于WCHAR。

 

dynamic_cast : 是安全的类型转化   转化成功不成功是可控的  不成功返回0    B* b = dynamic_cast(*B) a;  表达的意思是  希望a是B*类型 然而static_cast就是相当于C语言里面的强转

 

 

对于从VC++6.0转到VS2005编译环境中的程序员。往往会碰到字符集之间的转换。 VC6.0采用的是ANSI字符集,而VS2005或者VS2008是采用的Unicode字符集。

L: 比如创建一个窗口类:HWND hWnd=CreateWindow(L"ClassName",L"最简单的Direct3D程序",                            WS_OVERLAPPEDWINDOW,200,100,600,500,                             NULL,NULL,wc.hInstance,NULL); L的作用:是将ANSI字符串转换成Unicode字符串,也就是每个字符占用两个字节。比如:    strlen("asd")=3;    strlen(L"asd")=6;

_T:   _T宏可以把一个引号引起来的字符串,根据你的环境设置,使得编译器会根据编译目标环境选择合适的(Unicode还是ANSI)字符处理方式    如果你定义了UNICODE,那么_T宏会把字符串前面加一个L。这时 _T("ABCD") 相当于L"ABCD",这是宽字符串。 如果没有定义,那么_T宏不会在字符串前面加那个L,_T("ABCD") 就等价于"ABCD" 因此_T相当于自动转换字符集。

TEXT:  功能与_T相似,在 ASCII 模式下,它们被忽略,也就是说被预处理器删除掉,但是如果定义了UNICODE, 则它们会将常量字符串转换成等价的 UNICODE 。    TEXT 宏的主要作用是当定义了 UNICODE/_UNICODE 预处理指令时,字符串被标志为双字节字符串,否则字符串被标示为 ANSI 字符串。

TEXT 的定义如下: TEXT( LPTSTR string // ANSI 或者 Unicode 字符串 );

 

 

推荐使用    TCHAR  ch[12] = _T("cccc")

  TCHAR ma[2]={L'a',L'b'};

分享到:
评论

相关推荐

    关于char,_wchar_t,_TCHAR,__T(),L,宏__T、TEXT,_TEXT、L.

    `char`, `_wchar_t`, `_TCHAR`, `__T()`, `L`, 宏`__T`, `TEXT`, `_TEXT`, 和 `L` 都是与字符编码和跨平台兼容性紧密相关的概念。 1. **`char`**: 这是最基本的字符类型,通常用于处理ASCII编码的单字节字符。例如...

    关于char的前后兼容问题

    `TEXT` 和 `_TEXT` 与 `_T()` 宏的作用类似,它们可以根据编译器的配置选择适当的字符串类型。 ```c++ TCHAR szStr1[] = TEXT("str1"); // 如果定义了 _UNICODE,则等同于 L"str1" char szStr2[] = "str2"; // 总是...

    CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析

    本文将深入解析几种常见的字符串类型,包括`CString`、`LPCTSTR`、`LPTSTR`、`TCHAR`、`WCHAR`、`string`、`wchar_t`和`char`。 1. `CString`:`CString`是Microsoft MFC(Microsoft Foundation Classes)库中定义...

    VC++中的char,wchar_t,TCHAR

    在VC++中,char、wchar_t和TCHAR是三个非常重要的字符类型,它们之间的区别和使用方法是初学者需要了解的基础知识。下面我们将详细介绍这三个字符类型的概念、用法和区别。 一、char类型 char是C++中的基本字符...

    VC++中的char wchar_T和TCHAR

    在VC++开发环境中,处理文本数据时,程序员经常会遇到三种字符类型:`char`、`wchar_T` 和 `TCHAR`。这些类型的选择对于确保代码的兼容性和效率至关重要。本文将详细介绍这三种字符类型的基本概念、应用场景及其之间...

    Char_Cstring_TCHAR.rar_C++ CString CHAR_Char_Cstring_TCHAR_TCHAR

    `CHAR`、`TCHAR`和`CString`是Microsoft Visual C++中用于处理文本字符串的三种主要类型。了解它们之间的转换和使用方法对于编写跨平台兼容的代码至关重要。在"Char_Cstring_TCHAR.rar_C++ CString CHAR_Char_...

    VC编程_T()的作用

    在VC++编程环境中,_T()宏是一个非常重要的工具,它主要用于处理字符串编码的兼容性问题。这个宏允许开发者编写与ASCII和Unicode编码兼容的代码,而无需对源代码进行大量修改。本文将深入探讨_T()宏的作用以及其在...

    QString转换为TCHAR*

    在Windows编程环境中,经常需要处理TCHAR*类型的数据,它是一种通用字符串类型,可以在Unicode(宽字符)和非Unicode(ASCII)模式下自动适配。然而,在Qt框架中,我们通常使用QString类来处理字符串。当Qt代码需要...

    转 String,CString,TCHAR,char之间区别和联系

    ### 字符类型与字符串类之间的区别和联系 在C++编程中,特别是在Windows应用程序开发过程中,经常遇到多种字符类型及字符串类的选择与转换问题。本文将深入探讨`char`、`TCHAR`、`CString`以及`std::string`之间的...

    Tchar.zip_TChart_Tchar控件_delphi tchart

    TChart控件由Steema Software公司开发,它提供了丰富的图表类型和自定义选项,使得开发者可以轻松创建各种复杂的图表,包括折线图、柱状图、饼图、散点图等。本篇文章将深入探讨`TChart`控件的基本属性、使用方法...

    (UNICODE 与非UNICODE导致的问题)CString,TCHAR和CHAR类型的互转.docx

    在C++编程中,特别是在MFC(Microsoft Foundation Classes)库中,`CString`、`TCHAR`和`CHAR`类型扮演着关键的角色,它们之间的转换是解决UNICODE和非UNICODE兼容问题的关键。 `CString`是MFC库提供的一种字符串类...

    019-兼容型字符串(TCHAR)及相关函数.flv

    _T和_L的区别在于,_L不管你是以什么方式编译,一律以UNICODE方式保存 LPSTR:32bit指针指向一个字符串,每个字符占1字节 LPCSTR:32-bit指针指向一个常字符串,每个字符占1字节 LPCTSTR:32-bit指针指向一个常...

    char TCHAR WCHAR区别

    在C/C++编程中,尤其是在Windows平台上的开发中,正确理解和使用`char`、`TCHAR`、`WCHAR`这三种字符类型对于处理文本数据至关重要。下面我们将深入探讨这三种类型的特点、区别以及它们在Unicode与非Unicode环境中的...

    cpp-texport用于自动生成TCHAR类型程序的char和wchart类型的函数调用存根

    标题中提到的"cpp-texport"是一个针对TCHAR类型程序的辅助工具,其主要功能是生成`char`和`wchar_t`版本的函数调用,这样在处理不同字符集时,无需手动编写重复的代码。这在多平台开发或者需要兼容不同字符编码的...

    Tchar_test 股票监控 同时支持多图变换 delphi

    标题中的"Tchar_test 股票监控 同时支持多图变换 delphi"指的是一个使用Delphi编程语言开发的股票监控应用,该应用具有Tchar_test功能,并且能够同时显示和处理多张图表,用于实时或者历史股票数据的分析。...

    VC++中的char_wchar_T和TCHAR

    详细的介绍了char wchar TCHAR的联系和区别,非常适合初学者了解

    int _tmain(int argc, _TCHAR argv[]) 函数

    int _tmain(int argc, _TCHAR argv[]) int _tmain(int argc, _TCHAR argv[])

    TCHAR字符串类 TString

    `TCHAR`是Microsoft的一个类型定义,根据编译器设置,它可以是`char`(ANSI)或`wchar_t`(Unicode)。`TString`类是基于`TCHAR`的一个封装,旨在提供与MFC(Microsoft Foundation Classes)中的`CString`类类似的...

    string、wstring、cstring、 char、 tchar、int、dword转换方法

    根据所提供的代码片段和描述,本文将详细解析几种常见的数据类型转换方法,包括`string`、`wstring`、`cstring`、`char`、`tchar`、`int`、`dword`之间的转换。 ### 1. `string`与`wstring`之间的转换 #### `...

    两个多线程小程序

    //printf("%d,%d,%d,%d\n", l, u, result,t_id); //fflush(stdout); //LeaveCriticalSection(&gCRITICAL_SECTION_Printf); return 0; } //dispatcher void dispatch() { DWORD Status; timer tm; tm.start();...

Global site tag (gtag.js) - Google Analytics