CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何做到调试版本与发布版本的一致?

楼主chyyx1971(春雨无声)2005-08-01 10:37:44 在 VC/MFC / 基础类 提问

·我的程序使用串口进行收发数据,在VC中调试程序的时候,没有出现有关的串口错误提示,但是,直接运行编译好的调试程序,就报错,说串口错误,错误码是2,我查了一下Error   Lookup,2是系统找不着指定文件。后来我在将程序编译成Release版本,这样的错误又消失了,为什么同一个程序,只是脱离了VC环境,或者版本不同,运行的结果就不一样了呢?  
  ·程序中要链接到ADVAPI32.LIB,在调试环境下编译,没有出现任何警告和错误,但是在发布版本下,却出现了如下的警告信息:  
  LINK   :   warning   LNK4089:   all   references   to   "ADVAPI32.dll"   discarded   by   /OPT:REF  
  我不知道是不是这个警告信息的缘故,但是发布版本的确出现了错误(不是系统崩溃方面的,而是无法达到预期的结果),但是在调试环境下运行的调试程序,就没有错误(可以获得预期的结果)。  
  预期的结果:我的程序用到ADO对数据库进行添加查询等操作,调试环境下运行的调试版本程序,可以正确找到所需的数据,但是发布版本有时可以找到,有时却找不到。 问题点数:80、回复次数:8Top

1 楼property1(lubiao)回复于 2005-08-01 10:41:23 得分 0

gzTop

2 楼lygfqy(风清扬)回复于 2005-08-01 10:41:45 得分 20

LINK   :   warning   LNK4089:   all   references   to   "ADVAPI32.dll"   discarded   by   /OPT:REF  
  这条警告信息只是告诉你没有程序中的代码并没有调用到advapi32.dll这个动态库函数接口而已Top

3 楼lygfqy(风清扬)回复于 2005-08-01 10:42:56 得分 10

注意查看代码中被注释掉的部分!!Top

4 楼chyyx1971(春雨无声)回复于 2005-08-01 11:02:13 得分 0

“这条警告信息只是告诉你没有程序中的代码并没有调用到advapi32.dll这个动态库函数接口而已”,意思是说,程序可以不用链接到advapi32.lib的库吗?  
  刚才我试了一下,把它删掉了,但编译出来还是有那个警告信息!Top

5 楼lygfqy(风清扬)回复于 2005-08-01 15:18:12 得分 20

这个和库没有关系啊,不过是包含了他的头文件并在程序中使用或者曾经使用过他的输出函数  
  而后有注释的情况,或者编译器判定条件优化以后,某条调用的输出函数的语句永远也不会执行  
  所以编译器给出提示可以把这个库从编译条件中删去,要想去掉这条警告,就直接去掉相关的头文件  
  即可(确认你的程序中将不会再用到这个库)Top

6 楼qinxiaogang(qinxg)回复于 2005-08-01 15:53:38 得分 20

DEBUG版本的问题一定要解决,不要认为Release版本没有问题就可以了.这样肯定留下了bug.  
  在程序多加入ASSERT之类的判断,发现bug的机会便加大了.  
  Top

7 楼younggle(洋溢)回复于 2005-08-01 16:06:59 得分 10

没关系,不会影响程序的运行的。Top

8 楼chyyx1971(春雨无声)回复于 2005-08-02 11:35:26 得分 0

也不知道“advapi32.dll”是否专为Debug提供服务的,由于在Debug环境下编译,不会出现那个警告提示,但只要在Release下,就肯定出现,因此我想了一个办法,针对Release环境的工程Settings中,在Link属性页里,我将“Generate   Debug   Info”选中,然后重新编译,没想到竟然没有再出现警告了。后来我又将该选项去除,就又出现了,也许这个动态库确实是为Debug提供服务的。  
   
  不知道是否有专门介绍调试和编译的书?  
   
  虽然经过选项改变使警告信息不再出现,但仍是茫然一片,而且,两个版本运行结果不能保持一致的问题依然存在,唉,真不知该如何是好?Top

相关问题

  • 2000 professional版本不一致!
  • Delphi有没有分调试版本和发行版本?
  • 关于oracle多版本读一致性
  • SOS!!! 请问VC的调试版本和发行版本都有哪些不同
  • 请问:release版本的程序出错后如何调试?
  • release 版本下的 Platform Builder 如何调试?
  • 请问VC中想要调试Release版本该如何设置?
  • 装了visual stuio2005pro版本为何无法调试
  • 郁闷,关于JB7利用JDK1.3以前版本调试的问题
  • 郁闷,如何使用JB7和JDK1.3以前版本调试程序?

关键词

  • 版本
  • 编译
  • 函数
  • 动态库
  • 代码
  • 文件
  • release
  • debug
  • 信息
  • dll

得分解答快速导航

  • 帖主:chyyx1971
  • lygfqy
  • lygfqy
  • lygfqy
  • qinxiaogang
  • younggle

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo