簡體   English   中英

LPTSTR和LPCSTR C ++

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM