11 2009 档案
摘要:如果你是C++程序员,我想你可能遇到过这样的情况:在debug时,对着一个函数step into,明明调用的是A函数,可是结果却跳进了B函数。为什么,call stack里显示的也是明明白白,就是直接进了B函数。百思不得其解,于是你怀疑是不是系统出了问题,是不是编译器出了问题,是不是调试器出了问题~~~其实那些玩意不是那么容易出错的,先看看你你的A,B函数是不是同一个类的虚函数,如果是,这极有可能...
阅读全文
摘要:这里的COM组件可以是一个进程内服务器(In-Process Server),也可以是一个进程外服务器(Out-Of-Process Server)。一般情况下,我们在使用这些COM组件的时候,只要保证COM是正确注册了,根本不用关心DLL是怎么被load进来的,或者Exe的进程是被怎么创建的,一切都交给系统提供的COM启动机制,而之中用的最多的就是: STDAPI CoCreateInstance(REFCLSID rclsid,LPUNKNOWN pUnkOuter,DWORD dwClsContext,REFIID riid,LPVOID * ppv);它会帮你找到需要的DLL/Exe,
阅读全文
摘要:三个关于思考的故事这是三个关于思考的故事,都是最近实实在在发生在我身上的日常小事。 自行车停哪 - 根据常识来推断 这是去慈铭体检的时候发生的事情,当时在楼下转了一圈没找到自行车库。于是问了保安,他手往前一指,其实我也不怎么明白具体在哪里,但觉得顺着他指的方向往前应该能看到吧。但骑了一段后还是没发现,于是回头问了第二次,他手往右前方一指,一看,原来是在右前方的人行道上,还画了白线的。 其实自行车停...
阅读全文
摘要:perl是一门非常强大的文本处理语言,之前在写perl脚本时,基本上就用Notepad++和print解决了代码编辑和调试的问题。Notepad++作为编辑器其实是一个相当不错的选择了,对perl的代码高亮做得相当漂亮,喜欢的话还能自己扩展;但是对于调试这一块,虽然也用这种土办法写出上千行的能工作的脚本,但老是用print查看结果总不是个办法。 研究了一下,发现两个不错的工具: Komodo ID...
阅读全文
摘要:在64位系统下,用64位的程序自然是能够充分利用cpu中的64位指令和64位的地址空间,可有的时候,我们却不得不在64位系统下使用32位的程序。64位和32位对于64位还是32位,首先要从概念上把其理清,我觉得这可以分为三个层次: 硬件 主要是指CPU的指令集,寄存器,以及地址空间。比如x64体系结构的CPU,就是在32位的基础上添加了64位的操作指令,寄存器,同时提供了64位的虚拟地址空间。一台...
阅读全文