我在接口里定义了一个属性
[propget, id(4), helpstring("property PhoneNum")] HRESULT PhoneNum([out, retval] VARIANT *pVal);在它的get函数里得到返回值
STDMETHODIMP SMSClient::get_PhoneNum(VARIANT *pVal)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()) // TODO: Add your implementation code here
*pVal=_variant_t(m_pstrPhoneNum);
return S_OK;
}
这个函数的返回值是不是pVal,如果是的话,为什么pVal返回空,我只的是我在调用端(VB)调用这个属性的时候,显示的总是为空,哪位牛人能给一点意见?
VB 调用端为:
Private Sub Command3_Click()
Dim HandleTmp As New ISMSCLIENT2007Lib.SMSClient
Dim nResult As Boolean
nResult = HandleTmp.RecvMsg()
Text4.Text = HandleTmp.PhoneNum '这个总是为空,为什么总赋不值End Sub
[propget, id(4), helpstring("property PhoneNum")] HRESULT PhoneNum([out, retval] VARIANT *pVal);在它的get函数里得到返回值
STDMETHODIMP SMSClient::get_PhoneNum(VARIANT *pVal)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()) // TODO: Add your implementation code here
*pVal=_variant_t(m_pstrPhoneNum);
return S_OK;
}
这个函数的返回值是不是pVal,如果是的话,为什么pVal返回空,我只的是我在调用端(VB)调用这个属性的时候,显示的总是为空,哪位牛人能给一点意见?
VB 调用端为:
Private Sub Command3_Click()
Dim HandleTmp As New ISMSCLIENT2007Lib.SMSClient
Dim nResult As Boolean
nResult = HandleTmp.RecvMsg()
Text4.Text = HandleTmp.PhoneNum '这个总是为空,为什么总赋不值End Sub
上面的语句是解决不数组的问题的(看你的命名,我估计m_pstrPhoneNum是个字符串,字符串是数组,不是简单数据类型),比如你要下面这样肯定行:
*pVal = _variant_t(100L);字符串操作,应该使用BSTR。