进公司这两三周,一直在使用VC++6.0,以前在学校的时候,很瞧不起这个集成开发环境,觉得它又土又不好用,对它嗤之以鼻。但是使用这段时间以来,真心觉得任何一款集成开发工具都有其存在的道理,都很博大精神,如果你稍不留神,就会被其中的陷阱绕进去。
下面就介绍一下 我使用VC++6.0 时遇到的问题,以及犯下的错误
1:首先犯了一个低级错误造成了stackoverflow,是因为将字符数组的长度定义的很长,超过了2MB,希望以后这样的错误还是少犯。
2:由于一些变量的内容过长(尤其对于字符串来说),所以调试的时候,显示不了完全的内容,这时可以使用OutputDebugString来输出字符串的所有内容。
3:这真的是一个低级错误,浪费了我一上午的时间,我把注释写成了如下的样子:
/*注释
//注释
导致我的程序一直编译不通过,最后把注释改完之后,改成/*注释*/一切照常,这真是一个很啼笑皆非的问题,没办法,只能祈求下一回手别这么欠就行。
4:这个问题其实也很棘手,编译好的DLL文件放到了.exe中,运行时却遇到了这种问题
起初以为是内存越界或是内存泄漏的问题,调试了大半天,还是不行,最后找到了解决方法,原来是Code Generation(代码生成)的方法有问题,对于多线程下的DLL应该选择以下模式作为代码生成(Debug Multithreaded DLL)来作为代码生成方式
说实话第一次 感到VC这么 复杂。
5:也就是最神奇的,关于线程安全的问题,稍有不注意,程序就飞掉,比如localtime就是返回一个全局变量指针,在多线程下不安全,也就是每次分配内存的地址都是一样的,看来该好好看看线程同步和线程安全机制的资料了。。