2013年5月3日
摘要: 项目组里准备带人做封装SDK,想找一个好的教程给他学习,可是网上找半天没有找到满意的,一狠心自己写了一个。有什么问题大家看了尽量提出啊。此文档阐述如何在.NET框架下调用C++写的DLL。1、.NET的目标码和C++的目标码的区别和联系所谓目标码是由源代码编译链接(生成)产生的二进制码,在vs中,使用“生成”命令即可把源代码生成为目标码,目标码的形式通常有可执行文件(*.exe)和动态链接库(*.dll)等。为了理解.NET和C++的目标码的区别,首先要了解一下他们生成后的可执行模块在运行阶段的区别(本文提到的C++均指非.NET平台的C++语言,对应VS中的win32应用程序,而非C++.N 阅读全文
posted @ 2013-05-03 20:39 永恒的bluebird 阅读(934) 评论(0) 推荐(0) 编辑
  2011年5月12日
摘要: 此文讲述的内容是一个实际项目开发中的一部分内容,笔者将亲身经历写成文章。【背景】现需要实现这样的功能:有多个客户端连着同一个服务器。服务器和客户端之间需要“互相”知道彼此的连接状态。比如在某一时刻,服务器需要知道当前有多少个客户端正在和其通信;某一个时刻,某个客户端需要知道自己是否和服务器保持连接。如果在某一时刻,一个客户端关闭了,服务端应能及时感觉到;同样,如果服务端被关闭,所有的客户端应能及时感觉到,并作出一些反应。【思考】看到这个需求,直观上的反应就是在服务端维护一个在线列表。当服务端的监听器监听到一个连接,就把该连接对应的客户端信息加入这个在线列表。这样就完成了对上线状况的记录。但下一 阅读全文
posted @ 2011-05-12 10:34 永恒的bluebird 阅读(5014) 评论(9) 推荐(2) 编辑
  2011年5月6日
摘要: 看了标题是不是很惊讶?简单的 windows 记事本也有 bug??呵呵,无意中发现,分享下,仅供休闲娱乐。问题出在“自动换行”功能上。请先把“格式”-“自动换行”打上勾,启用他的自动换行功能。请看:弄一篇长一点的文章放到记事本里,(此处使用博客园网站上的简介文本)然后把窗口的宽度拉窄:他会根据当前宽度自动换行,这个没有问题。保存这个文件:保存完毕后,再将窗口的宽度拉宽,“奇迹”出现了:他并没有再按照宽度去自动换行。这时为什么呢??如果再将其拉窄呢? 请看:原来如此!! 他竟然在刚刚自动换行的位置上加入了真正的换行符!!!不信??? 按 Ctrl+A 全选,再粘贴到字处理程序(比如word)中 阅读全文
posted @ 2011-05-06 10:29 永恒的bluebird 阅读(596) 评论(0) 推荐(0) 编辑
  2011年4月21日
摘要: [知识背景]所谓自定义通知事件,就是指在自己的类中定义的事件,该事件用于向调用者发出通知。比如做一个下载工具,下载是需要时间的,用户在界面里点击“下载”之后,我的下载类在后台开启线程开始传输数据,前台界面上可以同时执行其他操作。当数据传输完成,需要通知界面(调用者)已完成下载,以便界面上做相应的改变。这就需要在我的下载类中有类似DownloadCompleted的事件,这样在用户的代码中可以通过downloader.DownloadCompleted+=newnewEventHandler(XXXXX)进入他自己的事件处理函数。这里说的跨线程问题,是指非法的跨线程调用问题。还用上个例子,在下载 阅读全文
posted @ 2011-04-21 15:24 永恒的bluebird 阅读(1461) 评论(2) 推荐(1) 编辑
  2010年2月11日
摘要: 前两天无意间从一个取色工具GolorSpy的源码里(我回头翻了我的Google Reader始终没有找到那篇文,劳烦作者如果看到了本文可以联系我一下我将会贴上原文地址引用)发现了一个封装了Windows全局钩子方面操作的名为WindowsHooks的库,详细地翻看了源码,觉得相当好用而且易于扩展。于是撰写本文单独介绍该库的使用和扩展方法。文末提供该库的源码(如果该源码不愿意公开请通知我我会主动撤下... 阅读全文
posted @ 2010-02-11 17:28 永恒的bluebird 阅读(4672) 评论(1) 推荐(1) 编辑
  2010年1月24日
摘要: 一个应用策略模式(Strategy)的小实例----对TreeView功能菜单的功能选择模块进行解耦重构 阅读全文
posted @ 2010-01-24 05:11 永恒的bluebird 阅读(905) 评论(1) 推荐(1) 编辑