LPCTSTR 在UNICODE环境等价于: const wchar_t 在多字符集环境下等价于: const char 如果你的编程环境是UNICODE的, 需要转换成char, 那么可以使用函数 WideCharToMultByte 或者wcstombs 或者W2A宏
怎样把char型数组转换为LPTSTR和LPCTSTR类型? MSDN上的DataType上是这么说的,LPTSTR是什么呢? #ifdef UNICODE typedef LPWSTR LPTSTR; #else typedef LPSTR LPTSTR; #endif 而LPWSTR是针对wchar_t的,LPSTR是针对char的, typedef CHAR *LPSTR; typedef char CHAR; 可见如果没有定义UNICODE的话, char *就是LPTSTR,...
operator LPCTSTR() {...}, 直接返回他所维护的字符串。当你需要一个const char* 而传入了CString时, C++编译器自动调用 CString重载的操作符 LPCTSTR()来进行隐式的类型转换。当需要CString , 而传入了 const char* 时(其实 char* 也可以),C++编译器则自动调用CString的构造函数来构造临时的 ...
typedef char CHAR; 可见如果没有定义UNICODE的话, char *就是LPTSTR,而const char *就是LPCTSTR,那个T表示的是TCHAR(char[ascii],wchar_t[UNICODE])。 === 我的意思是如果你没有在命令喊使用“/D UNICODE”或者源码一开始“#define UNICODE”的话LPTSTR跟char *是一样的。你这里出现了乱码的话应该先看看你...
转到它们的定义看一下,没错的话它们应该都是char的宏定义,所以说你这样的强制转换是没有必要的。
在转换时要用char []类的,因为在这里我们不能初始化char*所以要分配一块内存空间。