在Direct3D程序中,需要载入各种文件:纹理,位图,x文件等
这些文件的路径需要用一个字符数组来存储,大致两类:
Unicode字符 | 多字节字符 |
LPCSTR | LPCWSTR |
char*(就是上面的) | wchar_t*(就是上面的) |
有些函数需要传入LPCSTR,有些需要LPCWSTR
之前的做法一直是尽可能用同一种类型的,然后在vs项目项目属性中的字符集中进行切换
其实可以优化:
//1.添加tchar.h
//2.将要本来要使用的LPCSTR或者LPCWSTR修改为TCHAR*
//3.在后面将字符用_T()修饰
//例子:
#include <tchar.h>
TCHAR* t1=_T("ABC");
于是每次修改vs项目属性中的字符集时可以确保原来的字符不需要在进行修改
因为TCHAR会在多字符集时被定义为LPCSTR,在Unicode时被定义为LPCWSTR
而_T(),相当于L根据多字符或Unicode时的有无