C++模板参数类型限定

如果不作限定,模板可以传入任意类型,这时我们可以为模板做参数类型限定,这样可以防止使用者传入了不支持的类型导致得到错误的结果。

template  struct Checker;
 template <> struct Checker {
   typedef int Type;[......]

继续阅读

python2.x版本中文导致编译失败

使用python写代码时,代码中常常需要一些中文,比如输出一些提示信息可能需要是中文的,比较醒目。但是python2.x版本默认编码格式是ascii,检测到非ascii字符时就会报错(UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0x?? i[……]

继续阅读

python获取svn最新版本号

这个我自己遇到的一个需求,就是在打包软件的时候需要记录一下当前的svn版本号,以方便以后追述每个软件版本对应的程序代码。下面的代码亲测有效,希望可以给你提供思路。

def GetSvnHeadRevision(work_path):
  current_work_path =&nbs[......]

继续阅读

C++如何实现挂起进程、恢复进程

1:枚举进程的所有线程,使用SuspendThread函数挂起每一个线程,需要恢复时使用ResumeThread函数恢复。因为挂起和恢复的顺序是不可预知的,所以可能会导致一些多线程程序崩溃,单线程程序可能不受影响。

void SuspendProcess(DWORD process_id) {[......]

继续阅读

c++获取程序的最后使用时间

杀软的软件管家里面,卸载列表会显示出软件的最近使用时间,以帮助用户清晰的查看该软件的使用频次,那这个时间是怎么获取到的呢。其实系统在打开一个软件时基本都有记录打开时间,当然并不是每一个可执行程序都能得到这个时间。

我们可以从注册表和Prefetch文件夹中获取最近打开时间,下面的例子我会优先选[……]

继续阅读

C++实现自动释放的句柄

当我们打开一个句柄使用完后,往往要求我们必须关闭,比如HANDLE,不再使用时需要CloseHandle()去关闭,非常麻烦,特别当函数有多个return时非常难写,这时我们就需要一个可以自动释放的句柄,这就好比智能指针,只需要创建使用而不需要管释放问题。

[……]

继续阅读