PersonalCorpus 版 (精华区)

发信人: hjt (浪子小猴◎忙活,郁闷ing ), 信区: VisualC
标  题: 讲个郁闷的笑话....
发信站: 哈工大紫丁香 (2003年06月03日20:22:49 星期二), 站内信件


偶这几天比较忙,一个视频会议方面的项目,老板急着要看demo.于是偶和同伙
就忙着做试验,调程序. 中间出现了很多莫名其妙的错误,现在想起来仍然觉得
很郁闷.

先是摄像头控制. 一开始自己写代码,已经好用了. 无意中看到别人封装好了
的一个类,把别人的demo project拿过来, 用着挺好. 遂将该类添加到自己的工
程中,按demo中的处理方式写好代码,编译通过,运行时出现使用了未定义内存的
错误. debug跟踪断点停在了WinMain中,狂ft. 把后添加的代码全部注释掉,再
运行,程序仍然崩溃,超级郁闷.仔细查看代码,没有发现错因...... 后重新建了
个工程,重新编写程序,运行成功.

程序中要使用一个jpeg编解码库. 这个库也有个示范工程,偶在原来的接口文件
中添加了适合自己需要的接口函数,并按这个需求重新写了库中的相关部分(采取
增加接口的方式,以保证原来的接口不变).在原来的jpeglib demo的程序中测试
成功. 将该库添加到自己的工程中的时候, 出现了一个boolean数据类型重定义
的错误,原因是jpeg库中对boolean类型有这样的定义
#ifndef HAVE_BOOLEAN
typedef int boolean;
#endif

而在c++库中boolean的定义是:
typdef unsigned char boolean;

这在语法上肯定是没有问题的,仔细对照两个工程(jpeg库的demo和偶自己的工程)
的设置选项,没有发现任何特别之处.但前者能运行. 郁闷了大半天最后把错误锁定
在编译预处理上. 最后把自己工程中的StdAfx.h和StdAfx.cpp备份后,把jpeg库的
demo工程中的两个同名文件拷贝过去,编译ok,运行ok.

怪事还没完.

由于偶还要在StdAfx.h中做一些预处理的事情,于是开始把原来工程中备份的同名
文件中的一些语句往新的文件中粘贴. 这次偶比较小心,粘贴完一句后立马编译,
出现一大堆错误. 吓得偶慌了神,赶快把刚粘上去的那句话删掉,再编译,错误依然......

来回折腾一阵子没有找到太好的办法,偶突发奇想, 把刚才备份了的两个文件还原
回来(当然,同时没有忘记把工程中的两个文件备份).奇怪的很,程序运行没有任何错
误.


自然,这些奇怪的问题的后面都会有它合理的解释,只是我现在还不知道而已.写下这
些一是觉得这些问题挺有意思,想听听大家的看法,二是提醒大家:做工程的时候一定
别忘了做备份,特别是当你要对程序做一些比较大的改动的时候,以免浪费太多的时间.









--

                     ←───────────────────────┼┼
│       █  █     ███     ███     人生漫漫苦短                   ││
│       ███       █         █                  一人独行便长        ↓│
┼┼     █  █     ██         █                                        ↓
┼┼─────────────────────────────────→

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 159.226.42.200]
※ 修改:·hjt 於 06月03日20:24:06 修改本文·[FROM: 159.226.42.200]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.554毫秒