5
私はBSTRを含むバリアントを持っていますが、時にはBSTRが ""(空)なので、これを避けるには?私は次のようなものを試しました:BSTRが空であることを確認してください
variant.bstrVal != NULL
しかし、それは動作しませんでした。
私はBSTRを含むバリアントを持っていますが、時にはBSTRが ""(空)なので、これを避けるには?私は次のようなものを試しました:BSTRが空であることを確認してください
variant.bstrVal != NULL
しかし、それは動作しませんでした。
使用SysStringLen
:
if (SysStringLen(variant.bstrVal) == 0)
{ ... }
あなたは、これは間違っているVT_NULL
またはVT_EMPTY
if (variant.vt != VT_NULL)
{
...
}
ためVARIANTの
vt
メンバーをテストすることができます。空のバリアントは、空の文字列 –@MMが質問を誤読することについて謝罪した 'VT_BSTR'に設定されたバリアントとは異なります。しかし、 'VT_EMPTY'のテストはそのトリックを行うべきです。 –
VT_EMPTYはVT_BSTRとも異なります。この質問は、既にvariant.vt == VT_BSTR'が知られていることを暗示しています。 –