वहाँ रहे हैं से किसी भी आसान से उपयोग, उच्च स्तरीय वर्ग या पुस्तकालयों कि आप विज़ुअल सी में VARIANT
रों के साथ बातचीत करते ++?एक आसान तरीका करने के लिए/परिवर्तित करने के लिए सी में भिन्न प्रकारों ++
अधिक विशेष रूप से, मैं पॉड प्रकार (उदा double
, long
), तार (जैसे CString
), और कंटेनरों (जैसे std::vector
) और VARIANT
रों के बीच रूपांतरित करना चाहते हैं। उदाहरण के लिए:
long val = 42;
VARIANT var;
if (ToVariant(val, var)) ... // tries to convert long -> VARIANT
comObjPtr->someFunc(var);
std::vector<double> vec;
VARIANT var = comObjPtr->otherFunc();
if (FromVariant(var, vec)) ... // tries VARIANT -> std::vector<double>
मैं (? भोलेपन से) मान लिया है कि कॉम के साथ काम कर रहे लोगों यह सब समय है, इसलिए वहाँ सबसे अधिक संभावना एक एकल सुविधाजनक पुस्तकालय कि रूपांतरण के सभी प्रकार के हैंडल किया जाएगा। लेकिन सब है कि मैं खोजने के लिए कर लिया है आवरण वर्गों में से एक बहुरंग वर्गीकरण है कि प्रत्येक कुछ प्रकार परिवर्तित:
- _variant_t या CComVariant पॉड प्रकार के लिए
- _bstr_t, CComBSTR, या BSTR स्ट्रिंग्स के लिए
- अजीब स्मृति का प्रबंधन के इस दुःस्वप्न से बचने के लिए - विजुअल बेसिक में स्विच करने की कम - CComSafeArray या SAFEARRAY सरणियों
के लिए कोई आसान तरीका है ment और bitwise VT_ARRAY | VT_I4
कोड?
संबंधित प्रश्न:
- CComVariant vs. _variant_t, CComBSTR vs. _bstr_t
- Convert VARIANT to...?
- How to best convert VARIANT_BOOL to C++ bool?
सवाल वास्तव में [C++] (जो उस निर्माण में नहीं है) पर लागू नहीं होता है, केवल दृश्य बोलीभाषा। – dmckee
@ डीएमकी: ठीक है आप हैं। –
जो भी उत्सुक है, उसके लिए पीओडी का अर्थ यहां एक स्टैक ओवरफ्लो उत्तर है। http://stackoverflow.com/questions/146452/what-are-pod-types-in-c –