【问题标题】:_bstr_t Not a known identifier_bstr_t 不是已知标识符
【发布时间】:2015-10-22 17:47:59
【问题描述】:

我多年来一直在使用这个类,它总是“就在那里”。前几天我创建了一个新项目,没有明确地做任何事情,这个类是可用的。

现在另一个新项目抱怨它不为人知。两个项目都有相同的#includes。

两个项目都没有#includes comutil.h。两个项目都没有使用 commsuppw.lib 库 (https://msdn.microsoft.com/en-us/library/zthfhkd6(v=vs.110).aspx)。包含的唯一可能相关的标头是 objbase.h,两个 项目都包含它。

那么为什么一个项目可以愉快地构建而另一个却不能呢?没有所需库的情况下如何链接?

我认为这是“我一整天都在编码并且我的大脑已经停止工作的问题”之一,但仍然......什么?

【问题讨论】:

  • 哎呀,我尝试在我同时创建的另一个项目中使用_bstr_t,它工作得很好。两者都是作为标准 Windows 控制台应用程序创建的,我没有添加额外的库......为什么一个神奇地工作而另一个没有?
  • #import 指令将生成一个自动#include 的.tlh 文件。那里没有太多魔力,只是不太明显。
  • 认为可能是这样,一个项目明确导入了 tlh 而另一个没有。然而,并不是我所有的项目都这样做......我想有些头文件包括一个包含 comdef.h 的头文件。我真的不喜欢#import!
  • 汉斯,谢谢!我搜索 comdef.h 了 30 分钟,从没想过 tlh 文件。

标签: c++ com bstr


【解决方案1】:

我需要#include <comdef.h>

显然这会自动导入所需的库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 2011-07-20
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多