功能定义。
inline VARIANT_BOOL ISAXXMLReader::getFeature ( unsigned short * pwchName ) ;
致电:
_bstr_t bstrFeature = featureName.c_str();
HRESULT hr = m_reader->getFeature(bstrFeature, &vfValue);
编译器错误:
error C2664: 'MSXML2::ISAXXMLReader::getFeature' : cannot convert parameter 1
from '_bstr_t' to 'unsigned short *'
d:\formaanalyser_29_novixbrl_export_ct_600_negatelablel_word\formaanalyser\
xmlsupport\xmlparser.cpp 187
它在visual 6.0中运行良好。
答案 0 :(得分:0)
很难理解你的问题,但我的猜测是它可能与Unicode有关。 VC ++ 6.0默认创建非Unicode应用程序,VC ++ 2008创建Unicode应用程序。这可能导致与字符串指针类型相关的不同错误。尝试在VC ++ 2008项目属性,常规,字符集中将字符集更改为多字节。
答案 1 :(得分:0)
设置属性页 - >配置参数 - > C / C ++ - >语言 - >将WChar_t视为内置类型 - >不(Zc:wchar_t - )
这将修复无法将参数1从'_bstr_t'转换为'unsigned short *'错误
答案 2 :(得分:0)
这与您使用旧版MSXML和多字节字符串这一事实有关。要解决此问题,请将" Tread Wchar_t设置为内置类型"到"否(/ Zc:wchar_t - )"。这将解决您的问题,但可能会破坏其他接口,您可能还需要在其他库中更改它。