所以函数GetUserName()的输出给出了一个LPTSTR的用户名,我需要把它转换成一个LPCSTR,因为我希望用户名是一个ftp目录的名称。
TCHAR id [UNLEN+1];
DWORD size = UNLEN+1;
GetUserName(id, &size); // this is an LPTSTR
FtpCreateDirectory(hFtpSession,id) // 2d parameter should be an LPCSTR
问题是我需要将LPTSTR字符串转换为LPCSTR字符串。现在我知道了:
- LPTSTR是一个(非常数)TCHAR字符串,LPCSTR是一个常量字符串。*
但是如何将TCHAR转换为常量字符串?
我应该注意到我没有丰富的编程/C++背景,我还应该注意到我是用多字节编译的,而不是Unicode。
3条答案
按热度按时间afdcj2ne1#
因为你编译的是多字节,而不是unicode,所以你不需要做任何事情。
LPTSTR
会隐式地转换为LPCSTR
,因为它只是一个char*
到const char*
的转换。iugsix8n2#
如果你不是为Unicode编译,
TCHAR
=char
,所以你不需要转换任何东西。另一方面,当你为Unicode编译时,你必须进行转换;有几个替代方案,看看here。vof42yt13#
此代码应在unicode或多字节版本中工作。