VS2003和VS2010中间相差了一个2005和2008,2003也够老的了,没办法才来公司公司就使用这个建的工程。不仅操作不便,工程常常莫名死掉,而且代码代码坚持不规范啊。以前没注意看,这几次把公司代码拿到我的笔记本上编译的时候,发现VS2003下面的一个整型变量直接写出了static a = 0;居然通过了,在2010下这个被坚持出来了。还有字符串类型,VS2003报如下的错:“INT32 (LPCTSTR,LPCTSTR &)”: 不能将参数 2 从“LPTSTR”转换为“LPCTSTR &” ,VS2003就通过了,郁闷。这两个错前两次我把代码放到笔记本上跑的时候也就自己改改就是了,都不在意。今天的问题是,在公司用2003编译的EXE在我笔记本上跑起来了,但在我笔记本上用2010编译的EXE跑以来后居然不响应鼠标消息,过一会自动退出了。一样的代码啊!什么方法都想了,没办法自己在怀疑的地方都加上MessageBox,发现居然死在一个打开文件上,我EXE中每次都会删掉一个日志文件,然后重新创建日志文件,果然在打开文件这个地方就死掉了,没有任何提示。
DeleteFileA(m_sRecordFineName);//发现使用下面的ios_base::out没有删掉我的文件,所以加上这句
ofstream outfile(m_sRecordFineName,ios_base::out,2);//2是创建一个隐藏文件,但是好像也没有成功,这句导致的失败
SetFileAttributesA(m_sRecordFineName,FILE_ATTRIBUTE_HIDDEN);//上面的2没成功所以就加了这句
在VS2003下这三句运行得很好,虽然ofstream没有完成我要的功能,但是后面加上,2并没有失败。但在vs2010上这一句就失败了,而已好像程序是直接退出了,因为我的程序只有一个托盘,所以这里没有观察到。
下一个工程我自己建时,一定要用VS2008或以上版本了,这个2003早该退出历史舞台了。
今天总结:很多时候希望把事情放到一个舒服的时候去完成,最后只是把事情又往后拖了。恩,本来把工作说拿到家里来做,谁知道到家里访问公司网络时出问题了,悲剧明天还得到公司去把这几个小问题搞定,后天要出版本了。
繁忙的2012啊,劳动给人以充实,结果是可能疏远了身边的人,有时间记得补回来,晚安,明天已安排充实!有时,看病养病也是一种修炼的过程,让你出来工作无暇想更多无聊的事。