在学习MFC调用数据库时,在导入msado15.dll时出错,网上找了半天,发现这东西是编译器延迟,直接编译就可以,记录一下本人的辛酸历程。野生程序员的苦痛诶~

1、首先选择建立MFC工程

1.1 注意

在最新的MFC工程中已经将预编译头文件"stdafx.h"替换为"pch.h",所以网上那些关于stdafx.h的资料基本都已经过时辽

1.2 VS中建立MFC工程选项如下

在这里插入图片描述

2、导入msado15.dll出现错误如下

在这里插入图片描述
可以看到编译器提示我们:无法打开源文件…/msado.dll,前面的路径是VS项目所在的路径,这里就体现出编译器延迟的坑爹之处了,本人找了半天解决方法,其实这东西不用解决,直接编译运行,也不会报错!!!

3、 网上的方法

下述方法大家可以试一下,本人试了之后都没啥用,静静等待编译器反应过来就好了(强迫症的话没办法奥)。

3.1 加双反斜杠法-无效

将下述语句的反斜杠变成双反斜杠。。em…

#import "c:\program files\common files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF")

双反斜杠版本

#import "c:\\program files\\common files\\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF")

3.2 将msado15.dll放到debug文件夹目录中

大家可以根据上述路径在自己电脑的C盘中找到msado15.dll文件,但本人的VS报的错误信息为:无法打开源文件…/debug/msado15.tlh,而C盘目录中实际上没有msado15.tlh这个文件。
所以死马当活马医,将msado15.dll复制到debug文件夹,然鹅并没有卵用,编译器依旧有红线下划线报错。

C盘中msado.dll文件如下所示:
在这里插入图片描述
添加到VS工程下的debug文件目录中

在这里插入图片描述

3.3 加入预编译头stdafx.h

如果是建立的MFC工程,那么打开编译器中的C\C++预编译头之后,会显示有预编译头pch.h,本文上述已经指出,pch.h已经将stdafx.h替代辽,所以,此方法无用。

3.4添加头文件

在程序头部添加两个新的头文件

#include<odbcinst.h>
#include"afxdb.h"

这种方法在本文找的修复方法中属于认同人数最多的一种了,或许对大家有用。

THE END. THANKS FOR WATCHING.

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐