【问题标题】:msado15.tlh not generated after importing msado15.dll导入 msado15.dll 后未生成 msado15.tlh
【发布时间】:2017-06-21 12:42:52
【问题描述】:

我正在尝试使用/MP (Build with Multiple Processes) 选项来启用多进程编译,但是它与#import 冲突,所以我正在尝试Replacement for #import in Visual C++ 中提出的解决方法:

对于在 google 中遇到此问题的其他人:

  1. 创建一个单独的静态库项目
  2. 设置足够多的包含,以便您可以将#import 语句放入 lib 项目中
  3. 使您的主项目依赖于 lib 项目(以确保正确的构建顺序)
  4. 将 lib 项目的临时构建文件夹添加到包含路径 主要项目
  5. #include 生成的 .tlh 文件,您在其中执行 #import
  6. 启用 /MP 开关并失去咖啡休息时间...

我把步骤搞砸了,但是没有生成“msado15.tlh”。

这是我的工作:

  1. 创建静态库项目AdoImport
  2. AdoImport项目中添加一个头文件AddImport.h,只包含一行:#import "C:/Program Files/Common Files/System/ado/msado15.dll" rename("EOF", "adoEOF") rename("BOF", "adoBOF")
  3. 编译

我预计msado15.tlh 将在AdoImport proejct 的Debug 文件夹中生成,但找不到。编译报告成功,只生成AdoImport.lib

我应该如何生成 msado15.tlh 以便我的主项目可以包含它?

【问题讨论】:

    标签: c++ visual-studio-2013


    【解决方案1】:

    感谢您提供解决方案。通过这个,我尝试在 VS2015 中创建相同的内容,但不知何故没有奏效。

    所以我添加了导入语句

    #import "C:/Program Files/Common Files/System/ado/msado15.dll" rename("EOF", "adoEOF") rename("BOF", "adoBOF")

    在我的主项目的预编译头文件 StdAfx.h 中并编译了 StdAfx.cpp,不久之后,声明“..cannot open msado15.tlh”的#import 错误得到解决。这是一个简单的解决方法,无需创建库。但是您的回答使我解决了这个问题。谢谢你。

    谢谢, 卡姆莱什瓦。

    【讨论】:

      【解决方案2】:

      以防万一有人被谷歌击中,我是如何解决的 --

      #import "C:/Program Files/Common Files/System/ado/msado15.dll" rename("EOF", "adoEOF") rename("BOF", "adoBOF") 行放在AdoImport 项目的stdafx.h 中,以便始终编译。

      AdoImport 项目的“中间目录”(在项目属性 -> 配置属性 -> 常规下)应包含在主项目的路径中。

      【讨论】:

        【解决方案3】:

        在 VS2019 中收到相同的错误消息,但原因不同。 .tlh 文件的目标文件夹是只读的。我取消选中文件夹上的只读。 VS创建了tlh,错误信息消失了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-10-21
          • 1970-01-01
          • 2011-02-12
          • 1970-01-01
          • 1970-01-01
          • 2018-12-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多