评论请移步:http://zbm.xuanwo.tk/2011/...
阅读(1059) 评论(0)
评论请移步http://zbm.xuanwo.tk/2011/03/slim-event.html “事件”对...
阅读(539) 评论(0)
评论请移步:http://zbm.xuanwo.tk/2011/03/slim-semaphore.html 基于SRWLOCK和条件变量(Condition Variable)实现,需要windows vist...
阅读(593) 评论(0)
评论请移步:http://zbm.xuanwo.tk/2011/02/singleton-in-multithread.html 单件模式可能是所有设计模式中最简单的一个了,但在C++中,尤其...
阅读(638) 评论(0)
http://www.cppblog.com/localvar/archive/2010/12/16/136645.html假如一个系统中有多个模块,不妨命名为Module1, Mod...
阅读(622) 评论(2)
可维护性我认为主要由两个方面构成, 一是可读性, 也就是代码要能让人看懂; 二是可调试性, 出了问题可以很快的找到原因. 市面上讲设计的书很多, 但大部分侧重于灵活性和可复用性, 比如面向对象设计和设计模式等. 灵活和可复用并没有什么错, 但我认为可维护要更重要一些, 试想如果一个模块非常灵活并被大量复用, 却不可维护, 岂不是不出问题...
阅读(742) 评论(15)
代码并不复杂,不多做解释了,用的是windows api...
阅读(853) 评论(1)
把下面的图打印下来,按图示折好,粘起来。注意CDE三个标签的位置,图是对的,别粘错了。粘好后闭上一只眼,距离一米左右,转动自己的头,看看效...
阅读(627) 评论(0)
让这个bug困扰了很久,前一段太忙只找了个临时解决方案而没有追究原因,今天终于把它搞清楚了。由于测试时只在多cpu系统上出现,我甚至一度怀疑它是cpu的bug 。 两个c/s结构的网络通讯程序...
阅读(687) 评论(6)
为了分析用户使用过程中出现的软件Bug,经常需要.dmp文件的帮助。一般我们会用WinDbg或adplus制作这个文件,可这两个工具都有点“太难”了,往往要费九牛二虎之力才能教会用户。而让程序在崩溃时自动转储或用Dr. Watson转储虽然使用简单,却只能做崩溃转储,对死锁之类的情况则无能为力。 所以我决定自己写...
阅读(593) 评论(5)
当一个solution中的project越来越多以后,管理编译选项,将成为一件很麻烦的事,单独对每个project进行设置不仅繁琐,而且容易出错。但实际上,visual studio已经为我们提过了统一的管理界面—Property Manager。 在visual studio中,每个c++ project的general属性页中,都有一...
阅读(799) 评论(2)
作为一个有着正常审美观的人,我简直无法忍受C++/CLI(以及managed c++)的丑陋。不过,近来发现,这个丑东西也还有点用,在把原生开发接口包装成托管开发接口时,比C#的互操作容易的多(互操作看了看,头大呀)。磕磕绊绊几天,终于把一个SDK开发包转换完成了。总结经验如下: 1. 对于clr中的引用类型,定义变量时要用个^符,如"S...
阅读(712) 评论(2)
网上介绍数字签名的文章,大多使用signtool的signwizard命令实现,这种方式虽说简单,却需要人为干预,不能自动执行。msdn上说signtool的sign命令可以在命令行中完成签名,但描述的相当模糊,试了半天,终于找到了它的使用方法,一共执行四条命令即可,前三条一次性执行,最后生成一个个人证书(pfx),最后一条用于实际签名,可以放在pos...
阅读(1029) 评论(7)
vs05和08的crt增加了一点功能, 使用fopen(_wfopen)时可以指定文件的编码, 但我发现这个功能好像有很多bug, 会导致程序崩溃。我是使用下面的形式打开文件的:TCHAR buf[1024];FILE* fp = _tfopen( _T(“a.txt”) , _T(”rt,cc...
阅读(706) 评论(0)
    在《介绍一下SVN》一文中,我提到了自动递增版本号的功能,现在就来具体说明一下实现方法。虽然标题中说的是“使用SVN”,但我们实际用的是SVN的客户端工具TortoiseSVN中的SubWCRev程序。另外文中的例子也使用了Visual Studio的SVN插件VisualSVN,它并非...
阅读(1480) 评论(7)
1 2 3 4 下一页共4页  到第