在学习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"
这种方法在本文找的修复方法中属于认同人数最多的一种了,或许对大家有用。