`
java-mans
  • 浏览: 11452587 次
文章分类
社区版块
存档分类
最新评论

#include <tchar.h> 是什么意思

 
阅读更多

因为VS里的很多字符编码都是采用unicode来编码的,为了兼容字符集。微软开发了tchar包,tchar 在unicode下是wchar(双字符),而普通是char。 因为C++支持两种字符串,即常规的ANSI编码和Unicode编码,这样对应的就有了两套字符串字符串处理函数,比如:strlen和wcslen,分别用于处理两种字符串 。微软将这两套字符集及其操作进行了统一,通过条件编译(通过_UNICODE和UNICODE宏)控制实际使用的字符集,这样就有了_T("")这样的字符串,对应的就有了_tcslen这样的函数 。  

为了存储这样的通用字符,就有了TCHAR: 当没有定义_UNICODE宏时,TCHAR = char,_tcslen = strlen;当定义了_UNICODE宏时,TCHAR = wchar_t , _tcslen = wcslen 。当我们定义了UNICODE宏,就相当于告诉了编译器:我准备采用UNICODE版本。这个时候,TCHAR就会变成了wchar_t。而未定义UNICODE宏时,TCHAR变成了unsigned char 。这样就可以很好的切换宽窄字符集。tchar可用于双字节字符串,使程序可以用于中日韩等国 语言文字处理、显示。使编程方法简化。

参考资料:http://zhidao.baidu.com/question/318248378.html

分享到:
评论

相关推荐

    C++线程通信程序

    #include &lt;stdio.h&gt; #include &lt;windows.h&gt; #include &lt;iostream.h&gt; #include &lt;process.h&gt; #define UM_MSG1 WM_USER+1 #define UM_MSG2 WM_USER+2 DWORD WINAPI Thread1(LPVOID para) { DWORD ...

    简易播放器

    #include &lt;windows.h&gt; #include &lt;windowsx.h&gt; #include "resource.h" #include "MainDlg.h" #include "mmsystem.h" #include "commdlg.h" #include "WINUSER.H" #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include ...

    显示一条滚动显示的正弦曲线

    #include &lt;windows.h&gt; #include &lt;math.h&gt; #define ID_TIMER 1 #define NUM 1000 #define STEP 10 #define TWOPI (2 * 3.14159) LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain ( ...

    定时关机程序

    #include &lt;windows.h&gt; #include &lt;windowsx.h&gt; #include "resource.h" #include "MainDlg.h" BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { HANDLE_MSG(hWnd, WM...

    贪吃蛇 GAME 源码 vc++6.0编译

    #include &lt;windows.h&gt; #include &lt;math.h&gt; #define SIZE 10 POINT point[21],preposition,aimposition; int head,rear,direction,lenght; LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int ...

    c语言贪吃蛇源码(带注释)

    #include&lt;Windows.h&gt; #include"resource.h" #include"Node.h" #include&lt;stdlib.h&gt; #include&lt;time.h&gt; TCHAR szAppname[] = TEXT("Snack_eat"); #define SIDE (x_Client/80) #define x_Client 800 #define y_Client ...

    C++发送HTTP请求的实现代码

    代码如下:#include &lt;stdio&gt;#include &lt;windows&gt;#include &lt;wininet&gt; #define MAXSIZE 1024#pragma comment(lib, “Wininet.lib”) void urlopen(_TCHAR*); int _tmain(int argc, _TCHAR* argv[]){ urlopen(_T(...

    zlatlcv:zyl910's ATL String Conversion Utils (ATL字符串转换辅助)

    zlatlcv Links: Git: Blog: zlatlcv is a lightweight C++ library.... Example code: #include &lt;stdio&gt;#include &lt;locale&gt;#include &lt;tchar&gt;#include "zlatlcv.h"// "Welcome": English, Traditional Chinese, J

    游戏.sln一个游戏的代码类鞥看懂的就看看吧

    #include &lt;graphics.h&gt; // 引用图形库头文件 #include &lt;conio.h&gt; #include&lt;time.h&gt; #if 0 int main1() { initgraph(640, 480); MOUSEMSG m; int r;// 创建绘图窗口,大小为 640x480 像素 while (1) { m = ...

    黑客帝国C语言

    #include &lt;windows.h&gt; #define ID_TIMER 1 #define STRMAXLEN 25 //一个显示列的最大长度 #define STRMINLEN 8 //一个显示列的最小长度 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; typedef struct ...

    C++日志记录类实例解析

    本文所述实例是从一个Red Hat开源项目里面扒...#include &lt;tchar&gt; #include &lt;crtdbg&gt; #include &lt;windows&gt; #include &lt;time&gt; #include &lt;sys&gt; class CLog { public: ~CLog(); static CLog* get(TCHAR* path = NULL); v

    vector list map 遍历删除制定元素 防止迭代器失效的实例

    #include &lt;vector&gt; #include &lt;map&gt; #include &lt;string&gt; #include &lt;list&gt; using namespace std; int _tmain(int argc, _TCHAR* argv[]) { printf(“run main”); vector&lt;int&gt; vect ; vect.push_back(1); vect.push_...

    基于Opencv的视频人脸检测程序源代码(可运行)

    #include &lt;stdio.h&gt; int _tmain(int argc, _TCHAR* argv[]) { CvCapture* capture=0; /*初始化一个视频捕获操作。告诉底层的捕获api我想从Capture1.avi中捕获图片, 底层api将检测并选择相应的解码器并做好...

    各类排序算法源代码

    #include "tchar.h" #define MAX_OF_ARRAY 10 int iTemp = 0; int iTimes = 0; //////////////////////////////////////////////////////// //交换数据 void Change(int *a,int *b) { iTemp = *a; ...

    通过管道进行cmd进程输入输出重定向,源代码

    #include &lt;iostream&gt; using namespace std; int _tmain(int argc, _TCHAR* argv[]) { Console console; if( false == console.RunProcess("cmd.exe") ) { cout&lt;&lt;"create cmd.exe process fail"&lt;&lt;endl; return...

    深入分析C++中两个大数相乘结果不正确的问题

    在编写代码做测试时发现两个大数相乘结果不正确的问题,测试代码如下: #include “stdafx.h”#include&lt;stdlib&gt;#include&lt;time&gt;int _tmain(int argc, _TCHAR* argv[]){ time_t temp1=1345172428000000; time_t temp...

    C++编程实例详解C++

    #include&lt;windows.h&gt; //窗口对象的过程处理函数 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //Windows应用程序的主函数 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR lpszCmdLine, int ...

    c++计算圆的面积.cpp

    #include "stdafx.h" #include&lt;iostream&gt; using namespace std; //计算圆的面积和周长 float circle(float r) { return 2*3.14*r; }//圆的周长 float area(float r) { return 3.14*r*r; }//圆的面积 int _tmain...

    定时器编程

    #include "stdafx.h" #include "resource.h" #include"windows.h" #include"stdlib.h" #include"string.h" #include"stdio.h" #define MAX_LOADSTRING 100 HINSTANCE hInst; TCHAR szTitle[MAX_LOADSTRING]...

    TestSystem

    #include &lt;iostream&gt; using namespace std; int checkSystem(void) { typedef struct { CByte a; CWord b; CInt c; } testStruct; if (sizeof(CByte)!=1) { cout&lt;&lt;sizeof(CByte)&lt;&lt;endl; return 0...

Global site tag (gtag.js) - Google Analytics