使用#import添加msado28.tlb库时

问题描述

在将MS ADO类型库添加到大型已建立的MFC C ++项目中时遇到问题。我为此项目使用MS VS2015,而im则使用import指令,如下所示:

#import "C:\Program Files\Common Files\System\ado\msado28.tlb" rename_namespace("ADO_CG") rename("EOF","EndOfFile")

最初,我做了一个空白测试项目以创建基本功能,并且运行良好。我建立了我的班级,然后将它们移入主项目,这是错误开始发生的时间。由于来自“ comip.h”的一些错误报告,因此我无法构建项目,该文件没有被ive感动。错误如下:

    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之类的地方多次执行导入。经过重新组织后,一切正常。