вариант — C ++ COM ATL VariantChangeType вызывает сбой WSH

У меня есть следующая строка кода в моем проекте COM ATL, который вызывает сбой WSH:

Result = VariantChangeType(&Variant, &Variant, VARIANT_NOUSEROVERRIDE, VT_UINT);

Когда выше функция вызывается до сбоя, Variantтип VT_BSTRвот почему я использовал VARIANT_NOUSEROVERRIDE флаг. Я попытался удалить флаг безуспешно.

Что здесь плохого, чтобы WSH падал? Я уверен, что именно эта строка вызывает сбой, потому что отображается окно сообщения, предшествующее этой строке, но окно сообщения после этой строки не отображается. Тогда Windows говорит:

Microsoft ® Windows Based Script Host перестал работать

Мой синтаксис здесь неправильный?

0

Решение

Я исправил эту проблему с помощью CComVariant::ChangeType Вместо того, чтобы использовать VariantChangeType функция как ниже:

CComVariant CV = Variant;

HRESULT Result = CV.ChangeType(VT_I2);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]