2012-08-01 03:12
⁄ 工业·编程
⁄ 共 6729字
在说回调函数之前,首先要搞清楚什么是函数指针:它就是一个函数在编译时被分配的入口地址,可以将该地址赋给一个指针,这样指针地址变量持有函数入口地址,它就指向了该 函数,所以称这种指针为指向函数的指针,简称函数指针。 在说明函数指针时,同时也要描述指针 所指向的函数的参数类型和个数, 如
int (*funp)(int a , int b) ; 其中funp就是一个函数指针,它指向带有两个int...
函数, 软件开发阅读全文
2012-08-01 03:03
⁄ 工业·编程
⁄ 共 4793字
回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。回调函数在windows编程使用的场合很多,比如Hook回调函数:MouseProc,GetMsgProc以及EnumWindows,DrawState的回调函数等等,还有很多系统级的回调过程。本文不准备介绍这些函数和过程,而是谈谈实现自己的回调函数的一些经验。 之所以产生使用回调函数这个想法,是因为现在使用VC和Delphi混合编程...
函数, 软件开发阅读全文
2012-08-01 02:56
⁄ 工业·编程
⁄ 共 2754字
调用(calling)机制从汇编时代起已经大量使用:准备一段现成的代码,调用者可以随时跳转至此段代码的起始地址,执行完后再返回跳转时的后续地址。CPU为此准备了现成的调用指令,调用时可以压栈保护现场,调用结束后从堆栈中弹出现场地址,以便自动返回。借堆栈保护现场,它使调用者和被调者可以互不相识,于是才有了后来的函数和构件.
此调用机制并非完美。回调函数就是一例。例如...
函数, 软件开发阅读全文
2012-07-31 06:55
⁄ 工业·编程
⁄ 共 2733字
前言:利用drwtsn32或NTSD进行程序崩溃处理,都可以生成可用于调试的dmp格式文件。使用VS2005打开生成的DMP文件,能很方便的找出BUG所在位置。本文将讨论以下内容:
1、 程序编译选项
2、 利用VS2005 分析dump文件
3、 常见问题讨论
一、 程序编译选项
PDB files contains all debug information like type definition and function prototype. When application crashes, we need the PDB files to analyze the root cause, so...
软件开发阅读全文
2012-07-31 06:53
⁄ 工业·编程
⁄ 共 1292字
最近两天由于项目的需要,研究了一下Dump文件相关的知识,今天做一个小节(由于研究不久并且第一次写blog,希望网友们看到不要见笑)。
Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。
Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用WinDbg打开。
当我们的程序发布出去之后,在客户机上是无法跟踪自己代码的bug的,所以Dump...
软件开发阅读全文
2012-07-31 06:24
⁄ 工业·编程
⁄ 共 842字
举这样一个例子:假设我们要编写这样一个程序,需求是:输入圆形的半径,输出圆形的面积。
如果是面向过程的思想编程,他会这么想,输入数据:圆形半径,用double类型存储。输出数据:圆形的面积,也是用double类型变量存储。圆形面积的计算公式PI*R*R,这个就是算法,所以吻合我们编程界的名言程序=数据结构+算法。这里的数据结构很简单两个double类型数据,算法就是上面的计算公式。多...
软件开发阅读全文
2012-07-31 06:18
⁄ 工业·编程
⁄ 共 800字
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
面向过程的思维方式是分析综合;面向对象的思维方式是构造。
比如对C语言过程式解决问题时,一般是将现有的数...
软件开发阅读全文
2012-07-31 06:15
⁄ 工业·编程
⁄ 共 1046字
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4...
软件开发阅读全文
2012-07-19 19:38
⁄ 工业·编程
⁄ 共 1484字
1、意图
将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录日志;以及支持可撤销的操作。
2、动机
有时必须向某对象提交请求,但并不知道关于被请求的操作(或请求的接受者)的任何信息。
提交一个请求的对象仅需要知道如何提交它,而不需知道该请求将会被如何执行。
3、适用性
COMMAND模式是回调机制的一个面向对象的替代品。
在不同的时刻指定、排列和执行请求。如果一个请求的接收者...
设计模式, 软件开发阅读全文
2012-07-19 19:35
⁄ 工业·编程
⁄ 共 1180字
1、意图
使多个对象都有机会处理请求,从而避免请求的发送者和接收者间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
2、动机
给多个对象“处理一个请求”的机会,从而解耦发送者和接收者。该请求沿对象链传递,直啊到有一个对象处理它。从第一个对象开始,链中收到请求的对象要么亲自处理它,要么转发给下一个候选者。请求发送者并不明确地知道哪一个对象将会处理它。
3、适用性
...
设计模式, 软件开发阅读全文