vc++中各种字符串。
CString ,BSTR ,LPCTSTR之间关系和区别
CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。
CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。
typedef OLECHAR FAR* BSTR; typedef const char * LPCTSTR;
vc++中各种字符串的表示法
阅读全文 »
CString ,BSTR ,LPCTSTR之间关系和区别
CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。
CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。
typedef OLECHAR FAR* BSTR; typedef const char * LPCTSTR;
vc++中各种字符串的表示法
阅读全文 »
1 有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。
2、以为蒙上了眼睛,就可以看不见这个世界;以为捂住了耳朵,就可以听不到所有的烦恼;以为脚步停了下来,心就可以不再远行;以为我需要的爱情,只是一个拥抱。
3、那些已经犯过的错误,有一些是因为来不及,有一些是因为刻意躲避,更多的时候是茫然地站到了一边。我们就这样错了一次又一次,却从不晓得从中汲取教训,做一些反省。
4、你不知道我在想你,是因为你不爱我,我明明知道你不想我,却还爱你,是因为我太傻。也许有时候,逃避不是因为害怕去面对什么,而是在等待什么。
5、天空没有翅膀的痕迹,但鸟儿已经飞过;心里没有被刀子割过,但疼痛却那么清晰。这些胸口里最柔软的地方,被爱人伤害过的伤口,远比那些肢体所受的伤害来得犀利,而且只有时间,才能够治愈。
6、很多人,因为寂寞而错爱了一人,但更多的人,因为错爱一人,而寂寞一生。我们可以彼此相爱,却注定了无法相守。不是我不够爱你,只是我不敢肯定,这爱,是不是最正确的。
7、如果背叛是一种勇气,那么接受背叛则需要一种更大的勇气。前者只需要有足够的勇敢就可以,又或许只是一时冲动,而后者考验的却是宽容的程度,绝非冲动那么简单,需要的唯有时间。
8、生命无法用来证明爱情,就像我们无法证明自己可以不再相信爱情。在这个城市里,诚如劳力士是物质的奢侈品,爱情则是精神上的奢侈品。可是生命脆弱无比,根本没办法承受那么多的奢侈。
9、人最大的困难是认识自己,最容易的也是认识自己。很多时候,我们认不清自己,只因为我们把自己放在了一个错误的位置,给了自己一个错觉。所以,不怕前路坎坷,只怕从一开始就走错了方向。
10、生活在一个城市里,或者爱一个人,又或者做某件事,时间久了,就会觉得厌倦,就会有一种想要逃离的冲动。也许不是厌倦了这个城市、爱的人、坚持的事,只是给不了自己坚持下去的勇气。
11、多少次又多少次,回忆把生活划成一个圈,而我们在原地转了无数次,无法解脱。总是希望回到最初相识的地点,如果能够再一次选择的话,以为可以爱得更单纯。
12、如果你明明知道这个故事的结局,你或者选择说出来,或者装作不知道,万不要欲言又止。有时候留给别人的伤害,选择沉默比选择坦白要痛多了。
最近一段时间出现一种病毒,名为”西伯利亚渔夫”,该病毒使用了Rootkit技术,正常情况下会看不到文件,更险恶的是,该病毒会修改系统的DNS。
什么是DNS?
大家都知道,当我们在上网的时候,通常输入的是如:www.trendmicro.com.cn 这样子的网址,其实这就是一个域名,而我们计算机网络上的计算机彼此之间只能用IP地址才能相互识别。DNS是指:域名服务器(Domain Name Server)。域名和IP之间的转换工作称为 域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。
我们在一台电脑上,可以从两个地方获得一个域名所对应的IP,第一个是hosts文件,该文件的目录为C:\WINDOWS\system32\drivers\etc\hosts,可以文本文件打开编辑;第二个就是网络连接属性里的dns设置:
最近这事儿闹得沸沸扬扬的,不过似乎中招的呼声远没有漏洞本身的呼声大。这也说明了一个现象:虽然杀软很难做到对未知病毒的100%的防御,但是,现在已经做到在一个未知病毒出来后,极迅速地做出反应,以保证更多的用户不受病毒的攻击,正如我们趋势科技的云安全,在0day出现后7分钟就做出了反应,厉害吧~
等等,0day?什么是0day?
网络安全意思上的0day就是指一些没有公布补丁的漏洞,或者是还没有被漏洞发现者公布出来的漏洞利用工具,由于这种漏洞的利用程序对网络安全都具有巨大威胁,因此0day也成为黑客的最爱。
0day泛指所有在官方发布该作品之前或者当天,主要涵盖了影视、软件、游戏、音乐、资料等方面,由一些特别小组非法发布的数码内容。
下面我们就简单谈谈此次IE7的0day。
http://blog.sina.com.cn/s/blog_59acc8e20100bgdk.html
说起来还真有点自嘲,我这个国内某知名高校的软件工程专业的小本,居然时第一次开发团队VC并行项目。不过自嘲归自嘲,自从做了杀毒手,嘿,不但MFC深入浅出了,也能自己搞VC皮肤了。
其实杀毒手的目标定位跟它的名字有点冲突。一开始杀毒手的主要需求是为了帮助趋势的企业版客户做一些强力杀毒的功能,但是又考虑将来push solution的需要,所以附带了一些其他的功能,以便在后续版本做成一个“发布病毒解决方案的平台”。所以,这个杀毒手的名字,其实并不是十分贴切的,当然,这也是处于“一名惊人”的需要
我的模块是负责开发UI和各模块的通信数据。
杀毒手的架构是类似插件的设计,每个模块是个dll,继承自某一个接口,然后通过主程序Load进来。虽然我这是第一次做团队VC项目,但是据我的先前考察,发现这样的做法是切实可行而且是比较好的并行开发模式。
当然这便带来了一些困难。比如我的UI模块。如果是个人开发,我只需做一个skin库就可以。但是,杀毒手的做法是,每个功能模块通过UI的dll来动态生成控件。所以UI模块要和功能模块在事先进行充分的沟通、约定。
以前在学校都是个人做一些VC的中小型工具,所以界面美化都是用一些第三方的控件库。所以精力都集中在程序的逻辑上,而从来没有考虑过界面的产生、通信、消息循环已经销毁的机制。于是,只好硬着头皮上了。
先从“如何创建不规则窗体”开始。加了两天小班,研究了如何通过单色图来定制窗口形状,也阅读了通过定制Crect来控制窗口的外形,终于成功做出一个“奇形怪状”的窗口,但是却十分喜欢。接着,着手“通过dll动态创建控件,并让控件响应事件,然后传回给调用窗体”,加了3天班,对“dll的导出函数”,“MFC的动态绑定消息”有了深入的了解。接下来,开始美化界面,从“最简单的界面贴图”,到“重写MFC的窗体绘制函数”,再到“重绘各个控件”,这真是一个艰难的历程,不过都被我一个个搞定,更重要的是,我对MFC产生窗体的函数和过程有了了解,熟悉了常用控件的使用方法。
经过2个多星期的奋斗,一个友好的界面终于诞生。本来以为以及大功告成。可是新的问题又来了:内存泄露。因为控件是功能模块通过调用UI模块开发的函数动态创建出来的,所以我的模块里有了大量的new,但是为了保证这些控件一直显示在界面上,所以我没有对应的delete。但是由于控件类型功能模块是保密的,所以功能模块也无法delete。那到底是谁来delete?只能是UI模块了。没办法,只能重构代码。对类进行重新设计,将所有控件进行“树形”设计。在父窗口的类中加入子控件的List,那么在父窗口析构的时候,就会遍历这个list,然后对list里的每个子控件进行递归析构。所以,只要最顶层的主窗体销毁,那么其下的所有子窗口也就会销毁了。哦也,Memory Leak也被成功搞定。
UI模块与功能模块的数据的通信是个繁琐的过程。因为通信的数据不固定,所以很难做得“简单而又全面”,我目前的做法只能是有一份类似的SDK文档,其中约定了UI模块与功能模块的数据约定,类似name-value的数据结构。对于这个数据结构,我们曾讨论使用简单的string,到复杂的xml结构,后来都被否定,因为string的格式松散,xml的读写效率低,所以最后自己设计了一个类来存储这些数据,能解决格式松散和读写的问题,但是实例化的时候,要写比较大量的“简单”代码。如果你有什么好方法,请千万不要吝啬告诉我。
整个杀毒手的净开发时间大概在一个月左右。我在c++,vb,asp,asp.net,flash,photoshop,vc#,web中游荡了一圈之后,发现还是钟爱c++,难道这就是传说中的轮回?貌似我在杀毒手之前最近的一个VC项目还是大二做的,不禁又要自嘲一下了。通过杀毒手的开发过程,我觉得自己对MFC、C++的认识又真的上了一个台阶,我想,大概是因为又过了几年,项目的经验丰富了,所以对语言的认识也就在一个新的高度了。还记得大一时最讨厌C++的指针了,而我现在却是那么的喜欢它。真所谓温故而知新,不亦悦乎。
最后要略略带过的是,杀毒手的开发团队只有5个人,无法在一个月的时间内,做出一个类似“集合了杀毒、免疫、扫描等综合功能的产品”。所以,在杀毒手发布后,我们也看到一些业内人士的详细评测,我们很感谢他们做的无偿劳动,但是毕竟我们的主要定位还是帮助企业客户端强力杀毒。当然,我们会在后续版本里不断完善,将其真正作为一个发布杀毒方案的平台。请大家到时支持我们的杀毒手,支持我们的趋势!
谢幕,台下想起热烈的掌声,偶尔还听到阵阵“Jason,我爱你”的美女尖叫声。哦也