是否有任何易於使用,高級類或庫,讓你在Visual C與VARIANT
小號互動++?一個簡單的方法轉換到/從C++ VARIANT類型
更具體而言,我想POD類型(例如double
,long
),字符串(例如CString
)和容器(例如std::vector
)和VARIANT
S之間轉換。例如:
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>
我(?天真地)假定人們COM工作做這一切的時候,所以很可能是一個方便的庫,處理各種轉換。但是,所有的,我已經能夠找到的是包裝類的一羣魚龍混雜,每個轉換幾類:
- _variant_t或CComVariant對於POD類型
- _bstr_t,CComBSTR,或BSTR字符串
- CComSafeArray或SAFEARRAY數組
有沒有什麼簡單的方法 - 短的切換到Visual Basic - 爲了避免尷尬的管理內存中的這個噩夢ment and 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 2010-03-01 21:26:47
@dmckee:對,你是。 – 2010-03-01 22:39:12
對於任何對POD意味着什麼的人來說,這是一個堆棧溢出的答案。 http://stackoverflow.com/questions/146452/what-are-pod-types-in-c – 2013-08-25 14:03:48