ADO编程:_ConnectionPtr 等不能识别的问题

13 篇文章 1 订阅
1 篇文章 0 订阅

和上一次一样,写好了一个连接数据库的类,然后添加到工程中。结果发现_ConnectionPrt 还有 _RecordsetPtr等变量都不能被识别。有个奇怪的地方是,明明在VC中它还能指出该变量的来源,怎么就不能识别了呢?根据网上查到的解决办法,然后又拿以前的文件对照了一下:

1. 在stdafx.h里添加语句:#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF"),引入ADO类型库;
2. 在theApp的InitInstance函数头中添加函数:AfxOleInit(); 初始化 COM 库;
3. 开始使用ADO变量。

这几个地方都没有问题。于是我把Debug内文件都删掉,重新编译了一遍,发现了一个新的错误:“不是创建此预编译头时使用的 pdb 文件,请重新创建预编译头”。网上一查,是和预编译头有关。

预编译头
所谓的预编译头就是把一个工程中的那一部分代码,预先编译好放在一个文件里(通常是以.pch为扩展名的),这个文件就称为预编译头文件。这些预先编译好的代码必须是稳定的,在工程开发的过程中不会被经常改变的。如果这些代码被修改,则需要重新编译生成预编译头文件。在工程的属性中可以设置每次编译时是否创建预编译头,也可以使用过去的创建的预编译头。如果代码经常变,则每次创建比较不会出错。但是有一个问题是,生成预编译头文件是很耗时间的,尤其工程大的时候,而且每次创建和不创建就没什么区别了。为了加快编译速度,会使用过去创建的预编译头。但是一旦更改关键代码,就得要重新预编译:

右键你项目的预编译文件(stdafx.cpp)―>属性―>配置属性―>C/C++―>预编译头―>创建/使用预编译头,选择创建预编译头->重新生成。stdafx是VC工程默认自带的,实际上自己也可以定义预编译文件。

所以整个事件的原因在于:原本的工程生成了一份预编译文档,然后每次编译都以原来的为基础。后来加入工程的源文件并没有相应的预编译信息,所以认不出变量。解决方法:重新预编译。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值