【发布时间】:2012-05-20 21:30:37
【问题描述】:
因此函数 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 转换为 const 字符串?
我应该注意我没有丰富的编程/C++ 背景,我还应该注意我正在编译多字节,而不是 unicode。
【问题讨论】:
-
不转换任何东西时:GetLastError() 返回:12003 和 InternetGetLastResponseInfo() 返回:7771a9a8。
-
请注意,FTPCreateDirectory api 需要 LPCTSTR ,所以你可以简单地做 FTPCreateDirectory(hFtpSession,&id)
-
GetUsername 也需要一个 LPTSTR ,在那里你也可以引用你的 tchar 数组。
-
原来我的 ftpserver 上有 FILE(不是目录),它的名称与我的用户名完全相同。因此,当我删除该文件时,一切正常。尽管如此,还是感谢您的帮助。