参考:https://blog.youkuaiyun.com/liangjisheng/article/details/72235402
MFC ActiveX工程使用CComQIPtr,错误如下:
dlgmain.cpp(104): error C2065: “CComQIPtr”: 未声明的标识符
dlgmain.cpp(104): error C2275: “IHTMLDocument3”: 将此类型用作表达式非法
1> c:\program files (x86)\windows kits\8.1\include\um\mshtml.h(34157) : 参见“IHTMLDocument3”的声明
dlgmain.cpp(104): error C2065: “pDoc”: 未声明的标识符
dlgmain.cpp(105): error C2065: “pDoc”: 未声明的标识符
dlgmain.cpp(111): error C2065: “pDoc”: 未声明的标识符
dlgmain.cpp(111): error C2227: “->getElementById”的左边必须指向类/结构/联合/泛型类型
1> 类型是“unknown-type”
dlgmain.cpp(150): error C2065: “CComQIPtr”: 未声明的标识符
dlgmain.cpp(150): error C2275: “IHTMLDocument2”: 将此类型用作表达式非法
1> c:\program files (x86)\windows kits\8.1\include\um\mshtml.h(31805) : 参见“IHTMLDocument2”的声明
dlgmain.cpp(150): error C2065: “pHtmlDoc2”: 未声明的标识符
dlgmain.cpp(151): error C2065: “pHtmlDoc2”: 未声明的标识符
dlgmain.cpp(158): error C2065: “pHtmlDoc2”: 未声明的标识符
dlgmain.cpp(158): error C2227: “->get_parentWindow”的左边必须指向类/结构/联合/泛型类型
解决方法:
//#include <atlcomcli.h>
//#include <comdef.h>
//#include <atlbase.h>
//#include <atlcom.h>
using namespace ATL; // 关键的一句