更改IDL生成的头文件

Joh*_*ohn 5 c++ com idl

我正在研究一个遗留的c ++ COM项目,我正在转移到Visual Studio 2010.在这个项目的IDL文件中,我必须从另一个c ++项目中引用一个ODL文件.我的问题是另一个项目生成其头文件为$(filename)_h.h.当我的IDL文件生成其头文件时,它生成ODL文件名为$ filename.h,并且它无法引用正确的文件.

换句话说,在我的IDL文件("MyIDLFile.idl")中,我有一个类似的声明

导入"MyODLFile.odl"

在生成的文件("MyIDLFile.h")中成为

包括"MyODLFile.h"

当我需要它来生成

包括"MyODLFile_h.h"

如何指定我希望IDL在import语句中生成的文件名?

小智 2

我不确定您对导入语句的含义,但您要查找的内容可能可以在项目的属性下找到。转到属性窗口 (Alt-F7),在“配置属性/MIDL/输出”下,您将有机会声明您希望创建的头文件。由于您的项目是旧项目,因此从头文件名中删除“_h”可能会更容易(例如 $(ProjectName).h 而不是 $(ProjectName)_h.h)。请参阅http://support.microsoft.com/kb/321274了解更多信息。

  • 这是OP引用的导入语句:http://msdn.microsoft.com/en-us/library/windows/desktop/aa367047.aspx 当您使用它时会发生什么是MIDL为依赖的IDL生成标头然后将包含另一个标头的包含。它似乎使用与 ODL 文件相同的名称,并带有“.h”后缀。我不明白为什么当 Visual Studio 默认使用“%(Filename)_h.h”作为 MIDL 生成的头文件名时它会这样做。因此,使用默认值您永远无法将该 IDL/ODL 文件导入到另一个文件中。 (2认同)