2013-07-14 180 views
-1

我有我返回一個字符串作爲const char *功能:轉換爲const char *到LPCTSTR

const char* get_text(); 

我需要調用一個函數AfxMessageBox(LPCTSTR text)

如何將我得到的字符串轉換爲get_text()

+0

它所編碼(charset)由get_text()返回的字符串?問題在於,LPCTSTR依賴於項目設置中的字符集:對於非Unicode,它與const char *相同,對於Unicode,它是const wchar_t *。很可能你正試圖獲得一個Unicode字符串,但是你應該知道源字符串的字符集是什麼。 – Inspired

+0

@Inspired'get_text'返回一個普通的ASCII字符串 – Alex

回答

3

當你使用MFC,並假設UNICODE版本(!不然你不會有這樣的錯誤),可能是最簡單的方法就是直接實例wchar_t兼容CString

CStringW szWide(getText()); 
AfxMessageBox(szWide); 
+0

或者,您可以使用[ATL和MFC字符串轉換宏]之一(http://msdn.microsoft.com/en-us/library/vstudio/87zae4a3.aspx ):'AfxMessageBox(CA2CT(getText()));'。然而,Roger提供的答案更容易遵循。 – IInspectable