我有我返回一個字符串作爲const char *
功能:轉換爲const char *到LPCTSTR
const char* get_text();
我需要調用一個函數AfxMessageBox(LPCTSTR text)
。
如何將我得到的字符串轉換爲get_text()
?
我有我返回一個字符串作爲const char *
功能:轉換爲const char *到LPCTSTR
const char* get_text();
我需要調用一個函數AfxMessageBox(LPCTSTR text)
。
如何將我得到的字符串轉換爲get_text()
?
當你使用MFC,並假設UNICODE版本(!不然你不會有這樣的錯誤),可能是最簡單的方法就是直接實例wchar_t
兼容CString
:
CStringW szWide(getText());
AfxMessageBox(szWide);
或者,您可以使用[ATL和MFC字符串轉換宏]之一(http://msdn.microsoft.com/en-us/library/vstudio/87zae4a3.aspx ):'AfxMessageBox(CA2CT(getText()));'。然而,Roger提供的答案更容易遵循。 – IInspectable
它所編碼(charset)由get_text()返回的字符串?問題在於,LPCTSTR依賴於項目設置中的字符集:對於非Unicode,它與const char *相同,對於Unicode,它是const wchar_t *。很可能你正試圖獲得一個Unicode字符串,但是你應該知道源字符串的字符集是什麼。 – Inspired
@Inspired'get_text'返回一個普通的ASCII字符串 – Alex