随笔分类 - [01] VC++/MFC
摘要:引子 近来在 Windows 下摆弄了一阵子的服务程序,有在 C++ 下弄服务的,也在 C# 下弄服务的, 感觉在 C# 下弄服务蛮简单的の,C/C++ 的麻烦蛮多の(当然我的服务所要求的功能也是很简单的,就启动个进程), 只不过服务在安装啊、调试啊、卸载啊上面麻烦的要死,弄得我烦躁起来了, 而且对于服务的安装和卸载中间还有一个小插曲的, 因为我很早就知道可以使用 SCM API 来完成服务的安...
阅读全文
摘要:引子 前面介绍的几种用于实现进程之间通信的方法都是比较正统的方式, 像剪贴板,命名管道这些都还是用得比较多的, 而这里将介绍的是一种比较偏门的方法来实现进程间的通信, 所谓偏门呢,自然就是用的少,能够不用就不要使用。 其实这种方法就是通过动态链接库来实现进程间的通信。 动态链接库(DLL)概述 既然是要...
阅读全文
摘要:引子 好,到这里呢,就需要介绍实现进程间通信的第四种方式了, 也就是通过命名管道来实现,前面介绍的那三种方式呢,都是有缺陷或者说局限性太强, 而这里介绍的命名管道相对来说,在这方面就做得好很多了, 比如,剪贴板的话只能实现本机上进程之间的通信, 而邮槽的话虽然是可以实现跨网络之间的进程的通信, 但麻烦的是邮槽的服务端只能接收数据,邮槽的客户端只能发送数据,太悲剧了, 而对于匿名管道的...
阅读全文
摘要:引子 前面的两篇博文分别介绍了通过剪贴板和通过邮槽来实现进程之间的通信, 其中剪贴板呢,是用来实现本地两个进程之间的通信, 而邮槽则既可以实现本地两个进程之间的通信,也可以实现本地进程和服务器进程的通信, 当然,上面这两种方式都是有局限性的,比如剪贴板就只能实现本地进程之间的通信, 而在邮槽中,虽然是既可以实现本地进程之间的通信,又能实现本地进程和远程服务器进程的通信, 但是使用邮槽的...
阅读全文
摘要:引子 前面的一篇博文介绍了进程之间通信的一种最为简单的方式, 也就是在本地进程之间通过剪贴板来实现进程间通信,而剪贴板自有其缺陷, 很显然的是,剪贴板只能在本地机器上实现, 无法实现本地进程与远程服务器上的进程之间的通信, 那么有没有办法实现本地进程和远程进程的通信呢? 办法自然是有的,要是实在搞不出, 我拿 Socket 来实现本地进程和远程进程的通信来实现也是可以的, 但是你想...
阅读全文
摘要:引子 由于在启动一个进程后,操作系统会给这个进程分配 4GB 的私有地址空间,至于为何有 4GB 这么大, 那得考虑进程的私有地址空间和实际物理内存地址空间之间的映射以及页交换等等细节问题了,这里不予讨论, 从名字就可以知道,既然操作系统给每一个进程分配的是私有地址空间, 自然,这段地址空间也只有这个进程自己才能访问了,不然还称为私有干吗呢? 既然这段私有地址空间只能由进程本身访问,那也就说明别的...
阅读全文