【发布时间】:2011-02-12 19:08:49
【问题描述】:
简介
嗨,
我对 C++ 很陌生,这是我的第一句话。
我最初是从 VC++ 2008 Express 开始的,我注意到 GCC 已成为一种标准,因此我试图从一开始就制定正确的步骤。
我已经编写了一段通过 ADO 连接到 MSSQL Server 的代码,在 VC++ 上它通过导入 MSADO15.dll 就像一个魅力:
#import "msado15.dll" no_namespace rename("EOF", "EndOfFile")
因为我要从 VC++ 迁移,所以我一直在寻找替代(最终是多平台)IDE,所以我坚持(这次)使用 Code::Block(我在使用昨晚的构建, SVN 6181)。
作为编译器,我选择在 Vista 下使用 GCC 3.4.5(通过 MinGW 5.1.6 移植)。
我试图用 GCC 编译一个简单的“hello world”应用程序,它使用/导入相同的 msado15.dll (#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename( "EOF", "EndOfFile")),我很惊讶地看到很多编译时错误。
我预计#import 编译器的指令将从“msado15.dll”生成一个库,以便稍后链接到它(链接编辑时间或其他)。相反,它试图将其作为普通文件读取(如头文件,如果您愿意),因为它试图解释 DLL 中的每一行(具有 MZ 签名):
例子:
编译:main.cpp
E:\MyPath\main.cpp:2:64:警告:#import 指令末尾的额外标记
在 E:\MyPath\main.cpp:2:
中包含的文件中 c:\Program Files\Common Files\System\ADO\msado15.dll:1: 错误:程序中出现错误“\144”
在 E:\MyPath\main.cpp:2 包含的文件中: c:\Program Files\Common Files\System\ADO\msado15.dll:1:4:警告:空字符被忽略
c:\Program Files\Common Files\System\ADO\msado15.dll:1: 错误:程序中出现杂散“\3” c:\Program Files\Common Files\System\ADO\msado15.dll:1:6:警告:空字符被忽略
c:\Program Files\Common Files\System\ADO\msado15.dll:1: 错误:程序中出现杂散“\4” ...
等等。
我的问题
嗯,很明显,在这个版本的 GCC 下,#import 指令没有完成预期的工作(也许 GCC 不再支持 #import),所以最后我的问题是:
- 如何在使用 GCC (v3.4.5) 编译的 C++ 程序上使用 ADO 访问 MSSQL 数据库?
【问题讨论】:
标签: c++ gcc ado mingw windows-vista