gpt4 book ai didi

c++ - 在 Windows Vista 上将 MSADO15.DLL 和 C++ 与 MinGW/GCC 结合使用

转载 作者:行者123 更新时间:2023-11-28 03:57:51 27 4
gpt4 key购买 nike

简介

你好,

我是 C++ 的新手,这是我的第一个声明。

我最初是从 VC++ 2008 Express 开始的,我注意到 GCC 成为了一种标准,所以我试图从一开始就制定正确的步骤。

我已经编写了一段代码,通过 ADO 连接到 MSSQL Server,在 VC++ 上,它通过导入 MSADO15.dll 工作得很好:

#import "msado15.dll" no_namespace rename("EOF", "EndOfFile")

因为我要从 VC++ 转移,所以我一直在寻找一个替代(最终是多平台)IDE,所以我(这次)坚持使用 Code::Block(我昨晚使用的是 build, 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 签名):

例子:

Compiling: main.cpp
E:\MyPath\main.cpp:2:64: warning: extra tokens at end of #import directive
In file included from E:\MyPath\main.cpp:2:
c:\Program Files\Common Files\System\ADO\msado15.dll:1: error: stray '\144' in program
In file included from E:\MyPath\main.cpp:2: c:\Program Files\Common Files\System\ADO\msado15.dll:1:4: warning: null character(s) ignored
c:\Program Files\Common Files\System\ADO\msado15.dll:1: error: stray '\3' in program c:\Program Files\Common Files\System\ADO\msado15.dll:1:6: warning: null character(s) ignored
c:\Program Files\Common Files\System\ADO\msado15.dll:1: error: stray '\4' in program ...
and so on.

我的问题

很明显,在这个版本的 GCC 下,#import 指令没有完成预期的工作(也许 GCC 不再支持 #import),所以最后我的问题是:

  • 如何在用GCC (v3.4.5) 编译的C++ 程序上使用ADO 访问MSSQL 数据库?

最佳答案

您尝试以非标准和 MSVC 特定方式导入 COM 对象时发生了什么...

据我所知,MSYS 对 COM 的支持远非完美,请在 google 中搜索:“component object model”和 gcc。

我建议使用 FreeTDS或类似 SOCI 的图书馆用于与 MS-SQL 通信。也是跨平台的;-)

关于c++ - 在 Windows Vista 上将 MSADO15.DLL 和 C++ 与 MinGW/GCC 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720259/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com