[英]LPTSTR and LPCSTR C++
因此,函數GetUserName()的輸出將用戶名作為LPTSTR。 我需要將其轉換為LPCSTR,因為我希望用戶名是ftpdirectory的名稱。
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。
在編譯多字節而不是unicode時,您不必執行任何操作。 LPTSTR
將隱式轉換為LPCSTR
因為它只是char*
到const char*
轉換。
如果您沒有編譯Unicode, TCHAR
= char
,那么您不需要轉換任何內容。 另一方面,在編譯Unicode時,您必須執行轉換; 有幾個替代方案,請看這里 。
TCHAR id [UNLEN+1];
DWORD size = UNLEN+1;
GetUserName(&id[0], &size); // this is an LPTSTR
FtpCreateDirectory(hFtpSession,&id[0]);
此代碼應該在unicode或多字節構建中工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.