C++ short* to VARIANT_BOOL*

C++ short* to VARIANT_BOOL*

本文关键字:BOOL VARIANT to short C++      更新时间:2023-10-16

我有一个函数,它需要一个short*作为参数。我需要将其转换为VARIANT_BOOL*.谁能告诉我一个可靠的方法?

我甚至可以将VARIANT_BOOL*传递给函数,但是VARIANT_BOOL*没有填充正确的值。

非常感谢您的帮助!

STDMETHODIMP CWrapper::get_IsOpen(VARIANT_BOOL* uIsOpen, LONG* pVal)
{
    if (_c)
    {
        *pVal=_c->IsOpen(uIsOpen); //_c->IsOpen expects short* as argument
        return S_OK;
    }
    else
    {
        return S_FALSE;
    }
}

VARIANT_BOOL定义为:

typedef short VARIANT_BOOL; 

因此,如果要将VARIANT_BOOL传递给采用short*的函数,则需要使用&获取其地址。如果要将short*指向的short转换为VARIANT_BOOL,则需要使用 * 执行间接寻址。

VARIANT_BOOL vb = VARIANT_TRUE;
short* sp = &vb; // VARIANT_BOOL to short*
VARIANT_BOOL vb2 = *sp; // short8 to VARIANT_BOOL

把短VARIANT_BOOL放进短裤里,调用函数,把短头放回VARIANT_BOOL里。