未管理的C ++ tlh文件没有更新?

时间:2009-09-23 12:21:53

标签: c++ interface typelib

我有一个IDL文件,其中包含一些接口。

[
   object,
   uuid(newguid),
   dual,
   helpstring("NewInterface Interface"),
   pointer_default(unique)
]
interface INewInterface: IOldInterface
{
   [id(newid), helpstring("method NewMethod")] HRESULT NewMethod([in] BSTR bstrParam );
}

但是当我编译我的代码时,它看不到我的新界面。此外,当我打开.tlh文件时,它尚未更新以显示新界面。

对我需要做什么的任何想法?

编辑: 进口是通过

进行的
#import "File.tlb" raw_interfaces_only no_namespace

tlb文件似乎没有得到更新:(

1 个答案:

答案 0 :(得分:2)

.tlh.tli文件应在.tlb时间戳发生变化并且#import时更新。 .tlb文件是编译.idl文件时的输出。所以你应该检查

  • 如果.idl文件的编译设置正确(取决于配置!)
  • 如果导入的.tlb与编译的{{1}}实际上相同(检查包含路径),则注释中描述 sharptooth

除此之外,手动清除/删除所有输出文件有时会产生影响。虽然,我要说,使用项目文件的MS工具链的常见问题是它经常重新编译而不是经常进行,所以除了配置问题之外,我没有遇到过你所描述的问题。