6

因此函数 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 是 const 字符串。

但是如何将 TCHAR 转换为 const 字符串?

我应该注意我没有丰富的编程/C++ 背景,我还应该注意我正在编译多字节,而不是 unicode。

4

3 回答 3

4

当您编译多字节而不是 unicode 时,您无需执行任何操作。LPTSTR将隐式转换为,LPCSTR因为它只是一个char*转换const char*

于 2012-05-12T16:58:08.807 回答
2

如果你不是为 Unicode 编译,TCHAR= char,所以你不需要转换任何东西。另一方面,在为 Unicode 编译时,您必须执行转换;有几种选择,看看这里

于 2012-05-12T16:58:40.093 回答
0
TCHAR id [UNLEN+1];
DWORD size = UNLEN+1;
GetUserName(&id[0], &size); // this is an LPTSTR

FtpCreateDirectory(hFtpSession,&id[0]);

此代码应在 unicode 或多字节构建中工作。

于 2012-05-12T19:15:41.277 回答