【问题标题】: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 中遇到此问题的其他人:
- 创建一个单独的静态库项目
- 设置足够多的包含,以便您可以将#import 语句放入 lib 项目中
- 使您的主项目依赖于 lib 项目(以确保正确的构建顺序)
- 将 lib 项目的临时构建文件夹添加到包含路径
主要项目
-
#include 生成的 .tlh 文件,您在其中执行 #import
- 启用 /MP 开关并失去咖啡休息时间...
我把步骤搞砸了,但是没有生成“msado15.tlh”。
这是我的工作:
- 创建静态库项目
AdoImport
- 在
AdoImport项目中添加一个头文件AddImport.h,只包含一行:#import "C:/Program Files/Common Files/System/ado/msado15.dll" rename("EOF", "adoEOF") rename("BOF", "adoBOF")
- 编译
我预计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,错误信息消失了。