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