我有一个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文件似乎没有得到更新:(
答案 0 :(得分:2)
.tlh
和.tli
文件应在.tlb
时间戳发生变化并且#import
时更新。 .tlb
文件是编译.idl
文件时的输出。所以你应该检查
.idl
文件的编译设置正确(取决于配置!).tlb
与编译的{{1}}实际上相同(检查包含路径),则注释中描述 sharptooth 。除此之外,手动清除/删除所有输出文件有时会产生影响。虽然,我要说,使用项目文件的MS工具链的常见问题是它经常重新编译而不是经常进行,所以除了配置问题之外,我没有遇到过你所描述的问题。