因此,函数GetUserName()的输出将用户名作为LPTSTR。我需要将它转换为LPCSTR,因为我希望用户名是the目录的名称。
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是(非const ) TCHAR字符串,LPCSTR是const字符串。
,但如何将TCHAR转换为const字符串?
我应该指出,我没有丰富的编程/C++背景,我还应该指出,我正在编译多字节,而不是unicode。
发布于 2012-05-12 16:58:08
由于您正在为多字节进行编译,而不是unicode,所以您不必做任何事情。LPTSTR将隐式转换为LPCSTR,因为它只是一个char*到const char*的转换。
发布于 2012-05-12 16:58:40
如果不是为Unicode编译,则TCHAR=char,因此不需要转换任何内容。另一方面,在为Unicode编译时,您必须执行转换;有几种替代方法,请看一下here。
发布于 2012-05-12 19:15:41
TCHAR id [UNLEN+1];
DWORD size = UNLEN+1;
GetUserName(&id[0], &size); // this is an LPTSTR
FtpCreateDirectory(hFtpSession,&id[0]);此代码应在unicode或多字节构建中工作。
https://stackoverflow.com/questions/10565692
复制相似问题