🌓

发布一个小工具:EasyDump

为了分析用户使用过程中出现的软件Bug,经常需要.dmp文件的帮助。一般我们会用WinDbg或adplus制作这个文件,可这两个工具都有点“太难”了,往往要费九牛二虎之力才能教会用户。而让程序在崩溃时自动转储或用Dr. Watson转储虽然使用简单,却只能做崩溃转储,对死锁之类的情况则无能为力。所以

阅读全文

编译选项的统一管理

当一个solution中的项目越来越多以后,管理编译选项,将成为一件很麻烦的事,单独对每个项目进行设置不仅繁琐,而且容易出错。但实际上,Visual Studio已经为我们提过了统一的管理界面----Property Manager。在visual studio中,每个c++项目的general属性

阅读全文

C++/CLI的用途

作为一个有着正常审美观的人,我简直无法忍受C++/CLI(以及managed c++)的丑陋。不过,近来发现,这个丑东西也还有点用,在把原生开发接口包装成托管开发接口时,比C#的互操作容易的多(互操作看了看,头大呀)。磕磕绊绊几天,终于把一个SDK开发包转换完成了。总结经验如下:1. 对于clr中的

阅读全文

命令行下进行数字签名

网上介绍数字签名的文章,大多使用signtool的signwizard命令实现,这种方式虽说简单,却需要人为干预,不能自动执行。msdn上说signtool的sign命令可以在命令行中完成签名,但描述的相当模糊,试了半天,终于找到了它的使用方法,一共执行四条命令即可,前三条一次性执行,最后生成一个个

阅读全文

_tfopen指定文件编码后程序崩溃

vs05和08的crt增加了一点功能, 使用fopen(_wfopen)时可以指定文件的编码, 但我发现这个功能好像有很多bug, 会导致程序崩溃。我是使用下面的形式打开文件的:TCHAR buf[1024];FILE* fp = _tfopen( _T("a.txt") , _

阅读全文

使用SVN实现版本号自增

在《介绍一下SVN》一文中,我提到了自动递增版本号的功能,现在就来具体说明一下实现方法。虽然标题中说的是“使用SVN”,但我们实际用的是SVN的客户端工具TortoiseSVN中的SubWCRev程序。另外文中的例子也使用了Visual Studio的SVN插件VisualSVN,它并非必须,用了方

阅读全文

设计的载体是什么

也是一篇发在公司内刊上的文章。从参加工作开始,我就一直困惑于如何写设计文档。公司的各种规定和规范看起来很美,但真的执行起来却总让我头痛不已;同时,我也觉得自己喜欢的方式有些自由散漫,满足不了商业化开发的要求。直到前不久,偶然在网上看到了一篇题为《源代码就是设计》的文章后,我终于感觉自己把这个问题想得

阅读全文

extern "C"

原文本以为很简单,仔细阅读了一下 C++ 标准,发现内容还不少。总结了一下。要点:函数类型,函数名,变量名具有语言链接性,language linkage。语言链接性可能会影响到名字以及调用约定等,由实现决定。C++ 默认的语言连接性是 C++ 语言链接性。语言链接性仅作用于函数类型,函数名,变量名

阅读全文

SQLITE中原子提交的实现

原文链接1. 引言像SQLITE这样支持事务的数据库的一个重要特性是“原子提交”。原子提交意味着,一个事务中的所有修改动作要么全都发生,要么一个都不发生。有了原子提交,对一个数据库文件不同部分的多次写操作,就会像瞬间同时完成了一样。当然,现实中的存储器硬件会把写操作串行化,并且写每个扇区都会花上那么

阅读全文

Windows下配置SVN 1.4.5 + APACHE 2.2.6使用域认证

其实在网上搜索这个主题,已经有很多文章了,而且Subversion和TortoiseSVN的文档上也有相关介绍。但在我自己配置的过程中,发现它们好像都不完全对。所以我觉得有必要把自己摸索的过程写出来,供大家参考。不过已经有那么多“前车之鉴”了,我的方法是否真的有用,只能靠老天保佑了。要想配置成功,首

阅读全文