用过 VS2012 以上版本的人心里肯定清楚,想通过 Help Viewer 去下载帮助文档,那速度简直无法忍受,选择几个项目一晚上甚至几天都下载不完。很多人被逼的直接用 Google 在线的帮助了,搜索一下函数名结果就直接到 MSDN 的页面中。但并不是所有时候都有网络的,所以最终希望还是要寄托在 Help Viewer 上,但是这货下载速度的确太慢了,为了解决这个问题本文提供两种方案。一种是使用网络上其他人下载好的离线包直接安装(比较大),另外一种就是用一个 CodePlex 上提供的下载工具 Visual Studio 2012/2013/2015 Help Downloader 进行下载。

Continue reading

在日常开发过程中,我们常常用如下这种形式的结构体来传递数据。

typedef struct  _PATH_INFO {
    HANDLE  hPPid;              // 父进程 PID
    HANDLE  hPid;               // 子进程 PID
    ULONG   PathLength;         // 子进程路径长度
    TCHAR   Path[1];            // 用于存储子进程路径
} PATH_INFO, *PPATH_INFO;

其中前三个成员用来描述一个进程的父进程PID和自身进程的PID以及路径长度信息,而最后一个成员来描述该路径的实际内容,由于路径长度是不定的,我们为了节省内存,加了一个 PathLength 的成员来描述路径长度,不会将实际储存路径的成员设置成固定的 512 大小或者 1024 大小,这样会非常浪费内存,在使用过程中,我们会想如下这种方式来给结构体分配内存和填充数据。

Continue reading

你有没有发现,使用笔记本开发 Windows 程序的时候,屏幕的宽度虽然可以满足 Visual Studio 的工具栏和代码编辑器的位置,但是高度却很不尽人意。能看到代码的位置很有限,如果再把输出、搜索等窗口放到代码编辑框的下面,那看代码的空间有少了很多,哪怕你是高分辨率的屏幕也会有同样的感受。所以对使用笔记本开发程序的人来说,Visual Studio 纵向显示内容的区域真的是寸土寸金。

Continue reading

如果你进入本文时,若对与 多字节 Unicode ASCII 等这些概念上不清楚的话,请转到如下文章学习:

API入门系列之一 -那‘烦人’的Windows数据类型
http://blog.csdn.net/beyondcode/article/details/4015769

API入门系列之二 -Unicode还是ASCII
http://blog.csdn.net/beyondcode/article/details/4018731

API入门系列之三 -那迷惑人的Windows字符和字符指针类型
http://blog.csdn.net/beyondcode/article/details/4021085

Continue reading

EasyHook 是 Windows 平台下开源的 APIHOOK 工具库,因其开源有 64 位版本而注广为流传,微软也有提供 64 位 APIHOOK 的代码,但是要收费的。最近公司让我做一个 HOOK 的名单功能,顺便就研究了一下 EasyHook 的静态库编译和使用,也弥补一下曾经再这方面耗费的心血。下图是 HOOK 成功后 DebugView 的输出。

Continue reading

最近公司要求做一个小工具,要求是通过程序连接 Linux 服务器,对服务器传送文件和执行命令。多次搜索后找到了比较适合的 libssh2 开源项目。但因为缺乏文档,一直没有编译成功。但最终经过多方搜索,还是成功在 VS2015 中将项目编译成功。特此写下详细步骤,希望能帮助各位。

Continue reading