描述:
问题的提出:
import了msxml.dll以后,会生成tlh和tli文件,但是tlh文件里面生成的智能指针_IXMLDOMDocuement不能用.
我的代码是这样的
--------------------------------
#import <msxml.dll> named_guids
MSXML::IXMLDocumentPtr pCommandDoc;//必须这样才行。
--------------------------------
我的问题是
(1)F7编译生成的tlh里面有一行
_COM_SMARTPTR_TYPEDEF(IXMLDOMDocument, __uuidof(IXMLDOMDocument));
这里定义的不就是_IXMLDocumentPtr么
为什么在使用的时候,非要把IXMLDOMDocuement前面的下滑线 _ 去掉了? 很奇怪。
(2)如果我改成
#import <msxml.dll> no_namespace
IXMLDocumentPtr pCommandDoc;
就报一堆错误,错误定位在msxml.tlh里面,说:
1>d:\visual studio 2010\projects\myconsole\myconsole\debug\msxml.tlh(60): warning C4099: “DOMDocument”: 类型名称以前使用“class”现在使用的是“struct”
........
难道还有名称冲突? 这到底是为什么?
解决方案1:
(2)
说明里面已经改了,就照改了后的做吧
_COM_SMARTPTR_TYPEDEF(IXMLDOMDocument, __uuidof(IXMLDOMDocument));
定义的是IXMLDOMDocument啊