Как изменить тип VARIANT - PullRequest
0 голосов
/ 05 мая 2010

У меня VARIANT с его типом, установленным в VT_R8. Впоследствии мне нужно изменить его тип на VT_BSTR.

Я хотел бы знать, есть ли способ сброса статуса VARIANT.

Таким образом, я заметил, что каждый раз, когда я устанавливаю значение в VARIANT (в моем случае это double), сам VARIANT устанавливает свой элемент bstrVal в неверный указатель, хотя я устанавливаю элемент bstrVal в NULL при инициализации VARIANT. Почему это происходит?

Безопасно ли использовать VARIANT в качестве структуры, в которой установлены члены dbVal и bstrVal?

Пожалуйста, уточните, спасибо.

1 Ответ

1 голос
/ 05 мая 2010

VARIANT - это структура с объединением внутри. В зависимости от типа (VARIANT::vt) этот союз интерпретируется по-разному. Если вы используете VARIANT для хранения двойного значения, вы используете только поле «double», а не любое другое. Если вы хотите повторно использовать вариант для хранения BSTR, соответственно измените тип - в вашем случае просто измените значение «type» и установите для значения «BSTR» значение null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...