gpt4 book ai didi

c++ - 自 Visual Studio 2017 15.5.1 以来,_com_ptr_t 出现 Intellisense 错误

转载 作者:行者123 更新时间:2023-11-30 02:20:32 31 4
gpt4 key购买 nike

我有一个 _com_ptr_t 实例化是通过导入一个 .tlb 文件生成的,它在下面使用......

#import "object.tlb"

void demo()
{
IObjectPtr p;
p.CreateInstance(__uuidof(Object));
p->DoSomething();
}

在 VS2017 15.5.1 之前,此代码由 Intellisense 正确解析并构建良好。现在,在 15.5.1 及更高版本中,当 p->DoSomething() 时,我在 CreateInstancep 下都得到了曲线,如下所示带有注释为注释的 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 目录。我试过清除组件缓存。没有任何效果。给了什么?

最佳答案

更新看起来问题已在 VS 的 15.8 更新中得到修复。

旧答案我们在项目中遇到过类似的问题。我注意到它只有在我们切换到 C++17 语言标准时才会出现。回到 c++14 可以使 Intellisense 正常运行。

关于c++ - 自 Visual Studio 2017 15.5.1 以来,_com_ptr_t 出现 Intellisense 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49575402/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com