[项目笔记]媒体播放器

第一次写桌面应用、第一次带团队,九人团队。


时间很紧,完全没有预先学习的机会,直接上手,毫无经验。只好借助仅有的项目经验,仿照学长的流程做项目。


第一天:

凑出一个需求文档,三人写的,一人很详尽,另两人比较水。

美工做出一个效果图,还算不错。

教会组员mysql最简单的用法,见识到要让别人消除抵触情绪的困难,和队友一人进步带动别的队友进步的好效果。

配置mysql c++ connect很久,主要问题是搞不懂VS2010中怎么配置动态\静态链接库,有两个方式,1、配置库文件和包含文件夹。2、把相关文件放到工程目录下,并且设置附加的dll文件(推荐,移植性更好)。

感觉这个项目用mysql太鸡肋,想做一个网络应用,远端服务器上存储信息(如果有时间的话吧。。还是很麻烦的)


第二天:

需求文档完善了很多。Z美工比较好,但是文档写得很差,而L在文档方面很不错!合理分配资源。

没有C++项目经验,也没有windows项目经验,没有时间学习,模仿了spring的(按照我对spring的非常浅的理解)结构,写了一大半。

把Dao写好了,调试时出了很多问题,错误信息显示未连上数据库服务器,原来是mysql_real_connect函数中schema没有写。


第三天:

发现项目进行了不长时间后,就开始松散,九人团队实质上只靠七人支撑,而主要任务落在了四人头上(一前台\美工,一文档,俩后台),组员的消极和抵触增加。

尝试了在mfc中使用html5,失败放弃。

框架完成,调了若干奇葩bug。1、无法访问外部XXX,类声明没加;,还有循环包含。2、未进入main函数就退出,static变量没有初始化。3、初始化之后仍然出错,系统自动加的默认构造函数有问题,改成空的默认构造函数就好了(不知道为啥)4、在什么前面缺;,没加头文件 5、extern一用就错,弃用了。。6。。。

给两个主要后台人员写了一个范例,讲解了过程,分配了任务。


~~周末了~~


第四~第五天

昨天和Q熬夜写媒体库扫描功能,没有写日志。昨天推翻了mysql,以前没学过sqlite,不知道数据库还可以以文件形式组织,重写了Dao。在虚拟机上重装了windowsxp,装了Visual Studio和Navicat for SQLite。还没有写概要设计。最近遇到很多bug,总结了一下:1、什么未知的符号,就是重复包含头文件。2、windows编程,mfc程序中stdafx.h必须在最前面包含。3、cpp文件中是否忘记包含stdafx.h的问题,只要取消预处理头就好了。4、不能直接把文件拖到工程中,这样是绝对路径。

管理上的问题,和我自身平时的问题一样,不分主次、规划能力差,导致一半组员无事可干。(另一个原因是,在讲解的时候和分配任务,大部分人都不听,极端抵触,非常让人恼火!)


第六~第七天

sqlite是文件数据库,所以要注意版本问题!特别是工程和数据库版本要统一。因为转专业,又丧失了一个战斗力,项目落在了两个人头上。


~~周末了~~


第八天

写了get_by_pioneer,get_pioneer和sort函数。

在sqlite3中实现只保留最近十条记录,百度到一个很复杂的方法,Sqlite之删除超过50条的数据

我用了一个语言支持的特性rowid,和limit负数表示没有限制这两个特性,把它简便地搞出来了,如果sqlite3中delete支持order by的话,就不需要搞这么麻烦了。

delete from recent where rowid in (select rowid from recent order by time desc limit -1 offset 10)

插入时,time用语言支持的函数datetime('now')就行了。


第九天

全局变量不是所有都extern,得有一个本体。

            WideCharToMultiByte()
            //将宽字符类型的FileName变量转换成string,便于写入log文件,否则写不进去正确的文件名
            string file_name;
            DWORD length=WideCharToMultiByte(0,0,parameter->in_out_notification->FileName,-1,NULL,0,NULL,NULL);
            PSTR ps=new CHAR[length];
            if(length>=0
            {
                WideCharToMultiByte(0,0,parameter->in_out_notification->FileName,-1,ps,length,NULL,NULL);
                file_name=string(ps);
                delete[] ps;
            }

第十天

几大错误:Windows编程,一开始就应该用CString,现在搅不清。返回值都不应该用链表,应该用vector,因为经常都要随机存取,每次启动时清空数据库重新读取,导致了id错误,收藏的信息也没有了。不应该用sprintf,应该用stringstream,前者不稳定。很多地方Model参数应该使用引用。很多字符串参数应该使用const(避免使用const_cast)


带着数不清的bug,和遗忘了的视频模块,竣工。。。。。。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值