c++ - सी[/ सी++(एमएस) में चार[] को/से तर्ते[] कन्वर्ट करने का सबसे आसान तरीका क्या है?




string char (6)

हालांकि इस विशेष परिस्थिति में मुझे लगता है कि टीसीएचआर एक व्यापक चरित्र है, लेकिन मुझे रूपांतरण ही करने की आवश्यकता है, यदि ऐसा नहीं है। जो मुझे किसी तरह जांचना होगा

if (sizeof(TCHAR) != sizeof(wchar_t))
{  .... }

इसके बारे में अच्छी बात यह है कि बराबर के दोनों आकार स्थिर होते हैं, जिसका अर्थ है कि कंपाइलर (if) को संभाल लेंगे (और निकालें), और यदि वे बराबर हैं, तो सब कुछ ब्रेसिज़ में हटा दें

यह एक सुंदर सॉफ्टबॉल प्रश्न की तरह लगता है, लेकिन मुझे हमेशा इस समारोह को देखकर एक कठिन समय लगता है क्योंकि वहां चार और संदर्भों के संदर्भ में बहुत भिन्नताएं हैं।


टीसीएचएआर एक माइक्रोसॉफ्ट-विशिष्ट टाइपिंगफेप है जो चार या वाइरआइटी (व्यापक वर्ण) के लिए है।

इनमें से कौन सी वास्तव में यह है कि चार्ल्स पर रूपांतरण उस पर निर्भर करता है यदि टीसीएचएआर वास्तव में एक चरित्र है, तो आप एक साधारण कलाकार बना सकते हैं, लेकिन अगर यह वास्तव में एक wchar_t है, तो आपको अक्षर सेटों के बीच कन्वर्ट करने के लिए एक रूटीन की आवश्यकता होगी। फ़ंक्शन देखें MultiByteToWideChar ()


यहां सीपीपी कोड है जो _TCHAR * argv [] को चार * अरगन [] के डुप्लिकेट करता है

http://www.wincli.com/?p=72

यदि आप पुराने कोड को विंडोज में अपनाना चाहते हैं, तो सरल उपयोग को कोड में उल्लिखित परिभाषित किया गया है।


मुझे पता है यह एक पुरानी धागा है, लेकिन मुझे "सही" जवाब नहीं मिला, इसलिए अब इसे जोड़ रहा हूं।

अब जिस तरह से यह प्रतीत होता है, वह TEXT मैक्रो का उपयोग करना है एमएसडीएन पर FindFirstFile के लिए उदाहरण बताते हैं। http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418%28v=vs.85%29.aspx







tchar