![](/img/trans.png)
[英]What is the simplest way to convert a const char[] to a string in c++
[英]What is the simplest way to convert char[] to/from tchar[] in C/C++(ms)?
這似乎是一個非常柔軟的問題,但我總是很難查找這個函數,因為似乎有很多關於char和tchar的引用的變化。
TCHAR是特定於Microsoft的typedef,用於char或wchar_t(寬字符)。
轉換為char取決於它實際上是哪一個。 如果TCHAR實際上是一個char,那么你可以做一個簡單的轉換,但如果它真的是一個wchar_t,你需要一個例程來在字符集之間進行轉換。 查看函數MultiByteToWideChar()
這篇文章也有一些答案,特別是如果你正在尋找一個跨平台的解決方案:
雖然在這種特殊情況下,我認為TChar是一個廣泛的角色,如果不是,我只需要進行轉換。 我得以某種方式檢查。
if (sizeof(TCHAR) != sizeof(wchar_t))
{ .... }
很酷的是,equals的大小都是常量,這意味着編譯器將處理(並刪除)if(),如果它們相等,則刪除大括號內的所有內容
以下是將_TCHAR * argv []復制到char * argn []的CPP代碼。
如果您將舊代碼應用於Windows,則可以使用代碼中提到的簡單定義作為可選。
你可以在你的代碼中加入條件
ifdef _UNICODE
{//像TCHAR一樣寬大的問候}以及{//做像TCHAR是CHAR}
我意識到這是一個老線程,但它並沒有讓我得到“正確”的答案,所以我現在就加入它。
現在看來這樣做的方法是使用TEXT宏。 msdn的FindFirstFile示例指出了這一點。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418%28v=vs.85%29.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.