【发布时间】: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 文件。