void GetXPathExprValue(CComQIPtr<IXMLDOMDocument2> &spResponseXMLDoc,
LPCTSTR lpszXPathExpr,
LPSTR lpszResultValue)
{
USES_CONVERSION; CComPtr <IXMLDOMNode> spResultNode;
spResultNode = spResponseXMLDoc->selectSingleNode(_bstr_t(lpszXPathExpr));
if(spResultNode.p != NULL)
_tcscpy((wchar_t *)(wchar_t)lpszResultValue, (wchar_t *)(wchar_t)W2A(_bstr_t(spResultNode->nodeTypedValue)));
}
红色标记部分进行了强制类型转换,无错。但是用(wchar_t *)lpszResultValue进行转换,出错can't convert from 'LPSTR' to 'const wchar_t *'。
为什么上面转换两次的没错?而用(wchar_t *)lpszResultValue怎么就不能转换呢?
LPCTSTR lpszXPathExpr,
LPSTR lpszResultValue)
{
USES_CONVERSION; CComPtr <IXMLDOMNode> spResultNode;
spResultNode = spResponseXMLDoc->selectSingleNode(_bstr_t(lpszXPathExpr));
if(spResultNode.p != NULL)
_tcscpy((wchar_t *)(wchar_t)lpszResultValue, (wchar_t *)(wchar_t)W2A(_bstr_t(spResultNode->nodeTypedValue)));
}
红色标记部分进行了强制类型转换,无错。但是用(wchar_t *)lpszResultValue进行转换,出错can't convert from 'LPSTR' to 'const wchar_t *'。
为什么上面转换两次的没错?而用(wchar_t *)lpszResultValue怎么就不能转换呢?
(wchar_t *)((CA2W)lpszResultValue)