MSDN上的DataType上是这么说的,LPTSTR是什么呢? #ifdef UNICODE typedef LPWSTR LPTSTR; #else typedef LPSTR LPTSTR; 而LPWSTR是针对wchar_t的,LPSTR是针对char的, typedef CHAR *LPSTR; typedef char CHAR; 可见如果没有定义UNICODE的话, char *就是LPTSTR,而const char *就是LPCTSTR,那个T表示的是TCHAR(char[ascii],wchar_t[UNICODE])。 ================ 我的意思是如果你没有在命令喊使用“/D UNICODE”或者源码一开始“#define UNICODE”的话LPTSTR跟char *是一样的。你这里出现了乱码的话应该先看看你的char tmpDir[]有没有出现乱码。你看这个程序: #include <Windows.h> #include <tchar.h> int _tmain() { char a [] = "abcdefg"; LPCTSTR l1 = (LPCTSTR)a; char b [] = "你好啊。"; LPCTSTR l2 = (LPCTSTR)b; _tprintf(_T("%s\n%s\n"), l1, l2); return 0; } 我的运行结果是: |
|
来自: 已矣 > 《window编程》