【问题标题】:How does Visual Studio determine the order to compile IDL files?Visual Studio 如何确定编译 IDL 文件的顺序?
【发布时间】:2011-03-15 12:50:26
【问题描述】:

我有一个 COM 项目,其中包含许多 IDL 文件,其中一些被导入到其他文件中。 Visual Studio 如何决定先编译哪些(使用 MIDL)?

我想控制订单。我有一个主 IDL 文件,其中包含我的库声明和几个导入,如果它不是第一个编译的,我会收到构建错误。

(如果这听起来真的很奇怪……我是 COM/ATL 的新手,这真的非常令人困惑)。

【问题讨论】:

  • 只要您的依赖项设置正确,Visual Studio 就应该以正确的顺序编译。
  • 如何设置 IDL 文件之间的依赖关系?我正在使用 import 语句,就像您在普通 C++ 中使用 #include 语句一样。

标签: visual-studio com atl idl midl


【解决方案1】:

您不能要求 Visual Studio 按特定顺序构建 .ild 文件。相反,您可以将一些 .idl 文件#include 放入其他 .idl 文件中,并将您导入的文件设置为“从构建中排除”。这样 MIDL 不会单独编译导入的文件,而是将它们的内容包含到另一个文件的特定位置并作为该文件的一部分进行编译(与 C 预处理器#include 的效果相同)。

【讨论】:

    【解决方案2】:

    你可以让 Visual Studio 以你想要的任何顺序构建东西,有两种方法可以做到这一点:

    1. 放入一个预构建步骤,您可以在其中构建您希望首先构建的那些。

    2. 将您要首先构建的项目放在一个单独的项目中,然后通过让您的另一个项目依赖它来使其首先构建该项目。

    如果您无法修改 idl 文件,您应该这样做。但是,如果一个 idl 文件确实依赖于另一个文件并且您可以修改它们,那么按照上面的建议进行操作并让一个文件包含另一个文件。

    【讨论】:

      猜你喜欢
      • 2013-06-21
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 2017-08-13
      相关资源
      最近更新 更多