Showing posts with label Softwares. Show all posts
Showing posts with label Softwares. Show all posts

Saturday, February 14, 2009

编程常用工具之 Depends

这是一个古老简单的工具.他不是IDE,也不能帮你弄代码.他的作用是:分析dll.或者准确的说是:Module Dependency Checker.这个工具很有用,尤其在使用第三方dll的时候.
这个工具上表明是Microsoft Corporation,官网是http://www.dependencywalker.com/

它是免费使用,并且被很多工具收录其中,据说Windows安装CD里面就有,不过我还没找到.(话说Windows安装包里面有很多好玩的东东... 当然,那些修改版们基本上把它们都删了...) .. 跟往常一样看截图



它最基本的功能,或者说最常用的功能就是两个:
1.查看这个dll有那些接口(这里指的是函数).
2.看这个dll依赖哪些dll.

这个工具的一些细节功能我就不说了,把上面工具栏依次点一下就都明白了.我说说这个工具使用的时候有几点要注意:

dll依赖功能上,我做了实验,貌似他不能检测出手动LoadLibrary的情况... 至少他没有默认显示... 换句话说,他可能仍然要依赖别的dll,而这里没有显示出来.
大家都知道dll的载入搜索是有顺序的,具体顺序MSDN写的很清楚.depends的搜索顺序和你自己的程序的搜索顺序不一定一样... 换句话说:有可能depends检验能够顺利载入的dll你的程序却找不到. 反之也是. 在说的明朗点: 编程的时候时刻小心dll的位置.

Saturday, January 24, 2009

工具介绍 Control Spy 2.0

Control Spy是微软免费提供的一个小巧的工具.别的不说,先看截图.

如果你做过WIN32开发.可能你已经看出来了.这是一个用来测试Windows公共控件的工具.
微软的原话是Control Spy is a tool to help developers understand common controls.

公共控件(common controls)给人的感觉是虽然很普通,但是却很复杂.(这点用.NET编程的人我猜一般是不会体会到的,前几天一个学弟对我说"C#的按钮划过的事件怎么这么复杂啊...". –_-~~)

使用Control Spy可以几乎做到对控件的完全控制.包括Message, Notify.可以直接更改STYLE.
对应不熟悉控件消息的人来说这绝对是福音.
不过我使用的时候发现很多BUG,比如某些Style识别出错.有些STYLE不起效果.
我想这就是为什么他没有被加入到VS中的原因.
还有就是由于其自身设计的原因,有些东西是一辈子捕捉不到的.比如更改某些STYLE后重绘的XXX.还有窗体移动的消息....

一个简单的小例子,更改按钮文字.通过他至少知道参数是从LPARAM传进去的.

另外,通过它我终于明白了为什么Vista的控件有时候渐变得很干涩...
原来它是通过把原来一次解决的WM_PAINT事件一连调用16次来达到渐变...
以图为证.

PS:内部代号为BinPlayer的播放器进展缓慢.在家7天重构了3次.还是觉得不满意.核心功能没增加反而减少了...

Saturday, January 3, 2009

工具介绍 Microsoft Spy++

这是一个Visual Studio自带的工具. 这个工具什么时候有用呢?主要两种情况
1.编写要操作其他程序的程序.
2.是想观察其他程序的窗口属性,分析它是怎么实现的.

以前在不熟悉windows操作系统结构的时候,想编写一些操作系统辅助程序,老是遇到一些奇奇怪怪的问题.
时间长了之后才明白Windows的窗体结构...是一棵树..
然而从这里就可以一目了然地看出来.

还可以查看窗体的STYLE和CLASS,不过这个程序还是有些问题的.STYLE可能显示不标准.尤其是组件的STYLE.


最上面的图中, 灰色的图标表示不可见的Window,蓝色的是可见Window(包括最小化的啥的..)
窗体太多,想判断哪个对应哪个不太容易, 最基础的方式是看名称.
对于有些窗体,可以使用窗体高亮的功能:


最绝的是打开窗体属性,看窗体位置...,哈哈,这个基本上是无误的.


同时它还可以查看各个进程和线程的属性的功能, 使用一下, 还是很实用的.

Monday, December 29, 2008

ERROR查询器介绍 (Visual Studio 自带)

以前本地MSDN文档用的最多的就是error表.每次都查来查去.
后来发现Windows via C/C++上介绍了Visual Studio自带了一个非常使用的小工具: Error Lookup.

哈哈,这个就是上一个帖报的错. 查询后, 就是下面的样子.

想找到这个程序很简单
我把VS装在默认目录,它就在"C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools"下,叫errlook,是一个MFC程序.

其实还有一个更加简单的方法:调试的时候在watch中输入"$err,hr",来看效果

个人感觉非常的实用哈.