
OS related
saintony
这个作者很懒,什么都没留下…
展开
-
一个控制鼠标的有趣的程序
今天写了一个控制鼠标的程序,很有意思,主要代码如下: POINT lpPoint; for(int i=0;i { GetCursorPos(&lpPoint); SetCursorPos(lpPoint.x, lpPoint.y+1); Sleep(10); } mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); m原创 2006-09-27 21:58:00 · 1324 阅读 · 0 评论 -
BCB vs. VC++
http://www.blog.sh/user1/3049/archives/2005/17811.html看过这篇文章,然后又看了看BCB的一个HelloWorld教程,才明白为什么有那么多人在骂MFC.简而言之,BCB(以及他的VCL)是一个类似于VB一样方便,而且设计近乎完美的一套开发平台.1.VC的开发将大多数的时间都耗费在GUI上,消息的映射以及界面一些处理等足够耗费时间,而BC原创 2007-01-13 17:13:00 · 1627 阅读 · 1 评论 -
Meet with ActiveX ...
刚刚baidu了下activex,真有种相见恨晚的感觉,原来activex这么有用! 很自然的想到大2的时候用java applet做的一个嵌在网页里的数据绘图插件,这个东西还是我自认为大学里面做的比较不错的一个东西(我也没做多少东西).Java作出来的东西就是慢,如果我当初用activex,那就可以称得上完美了.呵呵~真的感觉COM技术真的是很了不起.原创 2007-01-12 10:50:00 · 866 阅读 · 0 评论 -
UI线程外UpdateData还是要小心
MFC明确禁止UI线程外的直接UpdateData,但是仍然可以通过定义新消息来完成这个功能.事实证明这样还是不太好:我在UI线程外的一个新线程内高频度(320*240次)同时操作一个UI的CString和ProgressBar,结果会产生随机的CString数据紊乱,要么是少数据,要么是写丢失.我将ProgressBar操作拿出一个Loop,改为320次频度的循环,经过多次测试证明这样做使得原创 2007-01-17 18:04:00 · 1035 阅读 · 0 评论 -
看了看COM编程
今天把北大的那个COM编程课件翻完了,发现很多东西都很熟悉,都是EJB里面的东西.比如JNDI在COM里面叫moniker等.整个体系结构还是一样的,具体的实现没有学会多少,唯一的收获就是消除了对COM的神秘感.原创 2007-01-22 11:20:00 · 859 阅读 · 0 评论 -
WinCE内核热更新
"热更新"是我自己起的名字,意思就是说在ce中彻底更新系统,包括bootloader和内核.其实原理还是很简单的,就是用MmMapIoSpace映射好nand的寄存器,然后把对nand的操作从别的程序移植过来.没错,一切都在ce中运行的一个应用程序中完成的.本来以为这个项目失败了,今天偶然看了一下原来的源代码,原来是指针没有解引用,这么一个低级的失误导致失败的...汗~...还有两个nand的原创 2007-01-29 22:11:00 · 2340 阅读 · 2 评论 -
Unmanaged Code's Code Coverage Analyze
VSTS自带的UnitTest目前测试Unmanaged-Code还有些困难,因为在CLR中运行的托管代码有Reflection支持。所以对于native的raw code必须经过特殊的处理才行。幸运的是VS自带了工具进行这类处理:vsinstr和vsperfmon。对于单一的Exe处理很简单,但是对于需要调用其他dll的复杂app来说就要稍微麻烦一点,要求exe引用的dll用/profile原创 2007-07-24 22:10:00 · 1143 阅读 · 1 评论 -
完成端口的简单理解
完成端口(I/O Completion Port)据说是目前最复杂的IO模型,看了整整一天才看出个名堂来,趁现在赶快记下来,不然过两天又要忘了。完成端口是Windows平台的异步I/O处理技术,可以极大的提升高频度IO处理的性能,尤其是在连接量较大的Web-Server中应用尤其广泛。传统的Socket处理都是利用多线程来处理,但是当请求数量过多导致线程数量也较大的时候,就会降低系统的性能-原创 2007-04-20 12:13:00 · 1187 阅读 · 0 评论 -
几个最近在看的软件测试工具
1. UnitTest in VS2005感觉天底下的UnitTest工具都差不多,不过MS做得真的不错,基本达到了Seamless的标准,用起来非常方便,让我想起了Eclipse中的JUnit,这个集成的也不错。有一点要注意的是F5-debug情况下不能做code coverage。2. Performance tool in VS2005同样的Seamless,用起来很方便,不过总原创 2007-07-23 19:48:00 · 1154 阅读 · 0 评论 -
Take care of fopen
For every C/C++ programmers, fopen may be one of the most familiar functions. Taking myself as instance, I used to use it quite freely, as its free lunch. But theres no free food ever -- the FILE* n原创 2007-11-30 00:01:00 · 784 阅读 · 0 评论 -
How Win32 & Linux implement System Call
Through the Linux source, we know that Linux implements system call by a soft interrupt (0x80) (at least the version 0.11). With OllyDbgs help, I found that Windows uses call gate to make system call原创 2008-02-29 18:11:00 · 857 阅读 · 1 评论 -
Thanks to GNU~!
I thought to develop a pure platform-independant binary *nix is necessary. So I use Linux in VMWare to develop a bootloader for a training one month later to some of my colleagues. I would say it suck原创 2008-05-13 01:20:00 · 767 阅读 · 0 评论 -
杀掉rd.sys/wmpkn.dll病毒
最近中了个驱动病毒:rd.sys &wmpkn.dll ,但凡是windows下的工具,不管是360safe 还是卡巴都不行,最后还是安装了“矮人DOS工具”进入纯dos弄掉的:0 用卡巴杀掉除rd.sys之外的病毒1 重启进入矮人dos工具进入纯dos,找到%system32%/drivers/rd.sys,del之2 重启,删掉如下几个注册表键值:/HKEY_LOCAL_原创 2007-01-06 16:15:00 · 2228 阅读 · 0 评论 -
CE中的亮度控制
对于S3C2440讲,亮度的控制只是对GPIO的TIMER0 Compare寄存器0读写。另,在CE驱动中,对于系统中的寄存器,没有必要自己重新VirtureCopy-VirtureAlloc,CE已经做好了映射:v_pPWMregs->TCMPB0; 对于亮度控制,还需要进行一次初始化(待续)原创 2006-12-26 12:37:00 · 1628 阅读 · 0 评论 -
WinCE中的音量/亮度控制
一开始使用了winmm.dll(ce驱动里面可以直接用,不用LoadLibrary)里面的mixer api,比较麻烦,好不容易编译过去了,调用又失败了。后来一查,这算是DirectSound函数集,不建议使用,尤其是像音量控制这么简单的要求。后来使用了最简单的waveOutGetVolumn和waveOutSetVolumn函数,却奏效了。 Debug了几个低级的边界越界错误后,一切正常。按照同原创 2006-12-25 23:20:00 · 2759 阅读 · 0 评论 -
告别Win32,你准备好了吗?
http://sd.youkuaiyun.com/n/20061011/95953.html今年11月,微软新一代的操作系统Vista就会发布,它将会改变原有的编程机制。Vista生成器最终将跟以前的Win32 API进行分离,取而代之的是可管理的WinFX,而WinFX就是微软继DOS、Win16、Win32之后推出的第四代API。据外刊报道,以前利用Win32 API开发的软件,在微软承诺的维护期之后转载 2006-10-11 09:48:00 · 987 阅读 · 0 评论 -
文件合并器
大概用了三个小时左右,编了这么一个咚咚,可以将指定的文件按照指定的大小合并为一个文件。原理很简单,就是细节比较多。原创 2006-10-19 19:44:00 · 931 阅读 · 0 评论 -
C++的一点注意
我写了如下的代码:void somemethod(){ CString str; ... delete &str;} 程序运行的时候发生了栈错误。原因:delete是针对new出来的对象的,再如上的代码中,str对象实际上被删除了两次,一次是delete还有一次是退出函数时的自动销毁。原创 2006-10-19 20:44:00 · 748 阅读 · 0 评论 -
Windows驱动加载控制器
花了一天时间写了个驱动(服务)加载控制器,用来动态的控制一个设备服务的运行与否。比如可以关闭掉USB端口的硬件识别,然后重新打开服务,使能设备的识别。 代码很简单,就是调用了几个winsvc.h中的api,但是怪问题还是挺多的。比如注册表删除不干净服务就不会完全中止,开着设备管理器会导致服务无法关闭等等。debug了一整天,终于ok了。最后重构了几个地方,小小的完善了一下程序结构。原创 2006-10-25 21:29:00 · 982 阅读 · 0 评论 -
Windows中操作窗体的两个API
GetSystemMetrics和SetWindowPos 还是挺有用的原创 2006-11-08 09:58:00 · 807 阅读 · 0 评论 -
改进电子白板客户端程序
侯经理安排了一个小活儿,给那个电子白板的PC端程序改成了多线程,接下来还要重构数据传输的算法。原创 2006-11-09 19:24:00 · 1291 阅读 · 0 评论 -
MFC -> COM/ActiveX/more...
刚翻完《深入浅出MFC》,的确是好书,把MFC讲透了,剧烈推荐~不过一时半会儿用不上的都空过去了,比如一些Macro的分析 ,还有D/V模式(这个很重要,可惜暂时用不上)。接下来打算深入学一下COM ActiveX 还有诸如Hook之类内部机制的东西。(Damn!三年了一直没有要学习Windows编程的意思,如今因为工作不得不深入了,阿米驼佛..)。btw,还有个驱动也得写写。原创 2006-11-09 22:43:00 · 863 阅读 · 0 评论 -
VC中的三个问题
1 - UI线程外UpdateData:在线程中通过发送消息UpdateData界面1.自定义消息:#define WM_UPDATEDATA 10000+1 // 更新界面 2.添加消息映射: ON_MESSAGE(WM_UPDATEDATA, OnUpdateData)3.定义消息处理函数:LRESULT CDlg::OnUpdateData(WPARA原创 2006-12-17 01:47:00 · 953 阅读 · 0 评论 -
驱动中的WIN32开发
1.驱动中不是任何事情都可以做的,比如无法使用MFC。说驱动可以做任何事是就硬件操作和操作系统内核而言的,要做一点类似应用的开发就只能用SDK。2.WinCE与其他平台的差异。总以为CE下的开发与PC平台的windows开发没什么差别,其实差别还是很显著的,n多在pc上可以实现的功能在ce中都不支持,比如不支持透明窗体等。以后大家在做ce的时候要小心。今天我花了2个多小时在MFC上,浪费了原创 2006-12-21 16:29:00 · 1292 阅读 · 0 评论 -
MFC on WinCE
1.WinCE为了节省资源,不支持透明窗体,只能手工实现(GetPixel + SetPixel,但速度可想而知)因此,要想实现一个类似电视那种的悬空控制界面只能考虑得到桌面的DC,然后绘制图像。擦除图像只要刷新桌面即可,但是我无论如何也无法实现WinCE桌面的刷新,PostMessage 调用DC成员函数都不行....还不知道怎么办2. 今天倒是解决了一个比较常见的问题:CButton上显示原创 2006-12-20 22:24:00 · 1773 阅读 · 0 评论 -
WinCE下模拟电视音量/亮度菜单框架开发完成
首先描述一下功能:完全模拟电视,3个按键,1个功能选择,剩下的两个进行值的加或减,指定时间无操作则自动消失。最初的想法是在Shell上绘图,这样最直接,但是最大的问题是如何擦除,可行的方法是进行屏幕刷新,但是我试了好几次都不行,于是换成了现在的方案:把所有的显示都用窗体模拟,开发流程如下:1、从EVC中抓取SDK程序的代码,放到驱动中。之所以这么做,是因为驱动中无法使用MFC,PC平台的S原创 2006-12-22 18:04:00 · 2167 阅读 · 6 评论 -
Porting - Different operating system, compiler, and behavior
These days I am working on project porting to Mac, which is a Unix-like platform with GCC as the default compiler. Besides some basic language grammer issues, what we need to care more are API semanti原创 2008-11-08 13:35:00 · 623 阅读 · 0 评论