_com_ptr_t的IntelliSense错误是Visual Studio 2017 15.5.1
Intellisense error with _com_ptr_t since Visual Studio 2017 15.5.1
我有一个从导入的.tlb文件生成的 _com_ptr_t
actantiation,该文件在以下...
#import "object.tlb"
void demo()
{
IObjectPtr p;
p.CreateInstance(__uuidof(Object));
p->DoSomething();
}
在VS2017 15.5.1之前,该代码正确地通过Intellisense解析并构建正常。现在,在15.5.1及以后,当p->DoSomething()
时,我在CreateInstance
和p
下都得到了弯曲,如下所示,以Intellisense工具提示为注释。
#import "object.tlb"
void demo()
{
IObjectPtr p;
// class "_com_ptr_t<_com_IIID<IObject, &__uuidof(IObject)>>"
// has no member "CreateInstance"
p.CreateInstance(__uuidof(Object));
// expression must have a pointer type.
p->DoSomething();
}
有趣的是,当我点入对象时,IntelliSense仅显示一个可用的成员GetIID
,但是代码构建和运行而无需发行。
我尝试忽略这些弯曲,但是我在代码中使用了很多com调用,很难从一堆伪造的错误中筛选出真实的错误。我尝试了干净和重建。我尝试删除.vs目录。我已经尝试清除组件缓存。什么都没有用。什么给?
update 看来该问题已在15.8更新中解决。
旧答案我们在项目中也面临着类似的问题。我注意到,仅当我们切换到C 17语言标准时才显示出来。回到C 14使Intellisense的行为正确。
相关文章:
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- Visual Studio 2017循环自动向量化问题
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- Visual Studio 2017 不允许我创建 C++ 专用模板
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- 在Visual Studio 2017中使用recursive_directory_iterator
- 使用 CMake,Microsoft MPI 和 Visual Studio 2017 找不到 mpi.h
- Visual Studio 2017 中的 QtMetaObject 未解决的外部错误
- 智能感知不适用于Visual Studio 2017中的cmake项目
- 在Visual Studio 2017中创建的简单DLL不会在XP中加载
- Android NDK - 无法在 Visual Studio 2017 中调试
- Visual Studio 2017 - 调试和 Relese 配置,设置运行时库
- Visual Studio 2017 C++,不能使用 typeid() 获取信息对象,缺少指针?;
- 代码在Visual Studio 2017中不起作用,但在VS代码中工作
- 默认/样板代码在Visual Studio 2017中给我错误.E1574.虚幻.但构建成功了
- std::filesystem::create_directories Visual Studio 2017
- OpenCV 3 Visual Studio 2017 调试,调用堆栈没有.pdb文件
- Visual Studio 2017 15.5 Breaks C++ TypeDefs
- 在Visual Studio 2017中使用c ++组件构建python解决方案时出现问题
- 如何在Visual Studio 2017上将类方法设置为参数并将它们与lambda一起使用?