使用#import 添加 msado28.tlb 库时在无关文件中引起的问题
Issues caused in unrelated files when using #import to add msado28.tlb library
我在将 MS ADO 类型库添加到已建立的大型 MFC C++ 项目时遇到问题。我为此项目使用 MS VS2015,我使用的导入指令如下:
#import "C:\Program Files\Common Files\System\ado\msado28.tlb" rename_namespace("ADO_CG") rename("EOF","EndOfFile")
最初我做了一个空白测试项目来创建基本功能并且它运行良好。我建立了我的 类 然后将它们移动到主项目中,这是错误开始发生的时候。由于“comip.h”报告的几个错误,我无法构建项目,这不是我接触过的文件。错误如下:
syntax error: missing ')' before 'constant' Line 136
syntax error: missing ')' before 'constant' Line 136
syntax error: 'constant' Line 141
syntax error: ')' Line 141
unexpected token(s) preceding ':'; skipping apparent function body Line 141
unexpected end-of-file found Line 931
到目前为止,我已经尝试在任何其他#includes 之前移动导入,针对项目的不同 windows 版本,搞乱几个项目设置,尝试在其他项目中导入,所有这些都没有解决方案。我完全不知道为什么其他三个项目我已经尝试过这个工作完全正常但这个项目拒绝构建。如果有人知道为什么那会很棒,但此时任何有助于缩小范围的信息都将不胜感激。
其他信息:正在为类型库正确生成头文件,并且在代码中被正确识别,只是生成的这些其他错误才是问题所在。
解决了这个问题。事实证明这是更大代码库中 #include 排序的问题,导致导入 运行 多次,即使是从 stdafk 等地方。经过一段时间 re-organising 一切正常。
我在将 MS ADO 类型库添加到已建立的大型 MFC C++ 项目时遇到问题。我为此项目使用 MS VS2015,我使用的导入指令如下:
#import "C:\Program Files\Common Files\System\ado\msado28.tlb" rename_namespace("ADO_CG") rename("EOF","EndOfFile")
最初我做了一个空白测试项目来创建基本功能并且它运行良好。我建立了我的 类 然后将它们移动到主项目中,这是错误开始发生的时候。由于“comip.h”报告的几个错误,我无法构建项目,这不是我接触过的文件。错误如下:
syntax error: missing ')' before 'constant' Line 136
syntax error: missing ')' before 'constant' Line 136
syntax error: 'constant' Line 141
syntax error: ')' Line 141
unexpected token(s) preceding ':'; skipping apparent function body Line 141
unexpected end-of-file found Line 931
到目前为止,我已经尝试在任何其他#includes 之前移动导入,针对项目的不同 windows 版本,搞乱几个项目设置,尝试在其他项目中导入,所有这些都没有解决方案。我完全不知道为什么其他三个项目我已经尝试过这个工作完全正常但这个项目拒绝构建。如果有人知道为什么那会很棒,但此时任何有助于缩小范围的信息都将不胜感激。
其他信息:正在为类型库正确生成头文件,并且在代码中被正确识别,只是生成的这些其他错误才是问题所在。
解决了这个问题。事实证明这是更大代码库中 #include 排序的问题,导致导入 运行 多次,即使是从 stdafk 等地方。经过一段时间 re-organising 一切正常。