Visual C++ で s を操作できる、使いやすい高レベルのクラスまたはライブラリはありますか?VARIANT
double
より具体的には、POD タイプ (例: 、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 を使用する人は常にこれを行っていると想定していたので、あらゆる種類の変換を処理する単一の便利なライブラリが存在する可能性が最も高いでしょう。しかし、私が見つけることができたのは、それぞれいくつかの型を変換するさまざまなラッパー クラスの組み合わせだけです。
- POD タイプの_variant_tまたはCComVariant
- 文字列の_bstr_t、CComBSTR、またはBSTR
- 配列のCComSafeArrayまたはSAFEARRAY
VT_ARRAY | VT_I4
Visual Basic に切り替える以外に、厄介なメモリ管理とビット単位のコードのこの悪夢を回避する簡単な方法はありますか?
関連する質問: