佚名通过本文主要向大家介绍了vc6 vc7,vc7,vc7运行库,vc7链接器,易语言vc7连接器等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 有关于智能指针,在VC6下可以,VC7不能编译通过。
描述:
解决方案1:
描述:
这点代码是这样的,
CXMLElement *pElementSub = NULL;
CComPtr< IDispatch > spItem = NULL;
spItem = pItems->Add(CComVariant(olContactItem));
ATLASSERT(spItem);
_ContactItemPtr pContactItem((spItem));
这样的代码在VC6下面是可以通过的。
在VC7下编译就有错误,
error C2664: “_com_ptr_t<_IIID>::_com_ptr_t(int)” : 不能将参数 1 从“ATL::CComPtr<IDispatch>”转换为“int”
with
[
_IIID=_com_IIID<_ContactItem,& _GUID_00063021_0000_0000_c000_000000000046>
]
这个错误指的是最后一行。
于是我改变了最后一行代码为:_ContactItemPtr pContactItem(__uuidof(spItem));
编译到是通过了,可就是一运行,程序到这儿就有错了。
-------------------------------
解决方案1:
用的lib不一样。