C ++ short *到VARIANT_BOOL *

时间:2014-02-27 11:59:32

标签: c++ visual-studio-2012 boolean variant

我有一个函数需要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;
    }
}

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

将VARIANT_BOOL放入短片中,调用该函数,将短片放回VARIANT_BOOL。