自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Leizi专栏

               喜欢雨天,静静地聆听雨滴的声音

  • 博客(40)
  • 收藏
  • 关注

原创 关于VC中时间函数的讨论

先从一个如何在程序中延时的问题谈起,延时的方法有方法一:     使用sleep函数,它的最小单位是1ms,如延时2秒,用sleep(2000)方法二:     使用sleep函数的不利处在于期间不能处理其他的消息,如果时间太长,就好象死机

2011-08-02 15:19:17 788

原创 作为对象的函数指针

在STL算法中,只要用到函数对象的地方(也就是functor),都可以把函数指针作为对象来使用。这种特性不论是在思路上还是在理解functor的工作原理上都是很重要的。Functor提供了一种将函数指针传递到STL算法的途径。与以往不同的是这里函数指针可以是一个类,或者是支持函数

2011-08-02 15:15:15 491

转载 C#调用DLL (strmagic)

  大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用这些原本已经存在的功能呢?答案是肯定的,大家可以通过C#中的DllImport直接调用这些功能。  DllImport所在的名字空间 using System.Runtime.InteropServices;  MSD

2010-01-14 10:58:00 707

转载 C#调用DLL (初学者适用)

  每种编程语言调用DLL的方法都不尽相同,在此只对用C#调用DLL的方法进行介绍。首先,您需要了解什么是托管,什么是非托管。一般可以认为:非托管代码主要是基于win 32平台开发的DLL,activeX的组件,托管代码是基于.net平台开发的。如果您想深入了解托管与非托管的关系与区别,及它们的运行机制,请您自行查找资料,本文件在此不作讨论。 (一) 调用DLL中的非托管函数一般方法首

2010-01-14 10:38:00 741

转载 C# ref与out区别

在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。 2、使用ref和out时,在方法的参数和执行方法时,

2010-01-12 10:28:00 708

转载 C#-explicit 和 implicit 的含义

explicit 和 implicit 属于转换运算符,如用这两者可以让我们自定义的类型支持相互交换explicti 表示显式转换,如从 A -> B 必须进行强制类型转换(B = (B)A)implicit 表示隐式转换,如从 B -> A 只需直接赋值(A = B)隐式转换可以让我们的代码看上去更漂亮、更简洁易懂,所以最好多使用 implicit 运算符。不过!如果对象本身在转换时

2010-01-12 10:21:00 839

原创 业务分析的一些原则和方法

1.业务需求的描述框架2.业务域的划分原则3.系统边界与界面4.业务对象与业务流程5.子系统间接口识别(泳道图/垂直跨职能图)6.业务算法分析业务对象是业务流程产生或者处理的实体数据,业务对象一般都具有产生、使用、消亡的过程。这个过程的细节是由业务流程决定的。业务结构描述了每一个业务域的主要子功能域。业务流程指业务操作的时间顺序或者先后步骤。功能需求描述了各个业务域完成的主要业务职能。业务接口

2010-01-06 09:26:00 1917

转载 用auto_ptr类模板帮助动态内存管理

  动态内存使用最多的是在C++应用程序的代码中。有过编程经验的程序员虽然都知道new操作符的使用一定要与delete匹配,在某些场合仍然可能有内存溢出。当异常被掷出时,程序的正常控制流程被改变,因此导致潜在的内存溢出。例如, void g() //可能掷出{  if (some_condition == false)  throw X();}void func() {  string * pst

2010-01-06 09:23:00 624

原创 模板的声明与定义

通常,我们是在.h文件中声明函数和类,而将其定义放在单独的.cpp文件中。但在使用模板时,这样做就不行了,由于编译器在碰到某个模板的实例时,必须看到实际的模板定义,而不仅仅是声明。因此,最好是同时将模板的声明和定义都放在相同的.h文件中。因为这个缘故,所有STL头文件都包含模板的定义,而不仅仅只有模板声明。

2010-01-06 09:21:00 1053

原创 类模板与模板类

1.类模板,是想把数据类型从类中分离出来,成为一个类的描述最简单的类模板定义例如:template class 抽象类名{T ...//}  2.模板类是一些MFC自带的类库CSingleDocTemplate就是一种,本身是个抽象类,目的就是用来定义一些"Doc/Frame/View"的基础函数,用来协调三者行动和管理 3.RUNTIME_CLASS太多了,建议读读,

2010-01-06 09:15:00 590

原创 MFC框架的创建过程

很久没有使用MFC了,以至于都忘记MFC框架复杂的窗口、文档、视的创建过程了。下面我们跟踪一个MFC MDI的应用程序,来温习或学习一下。 使用AppWizard创建一个MDI应用程序,我创建的应用程序叫MDITest,这样MFC生成了如下的类:类名 作用CMDITestApp 派生于CWinApp的应用程序类。CMainFrame 派生于CMDIFrameWnd的MDI框架窗口类。CMDITes

2008-12-16 14:33:00 2291

原创 内存泄露的原因

程序中的内存泄漏主要有:  1. 用new,malloc,GolbalAlloc等函数分配的堆内存没有用delete,free,GlobalFree等释放,这些内存在Debug时候都可以Dump出信息的,但只有new在Debug的时候会正确指出出错的行,因为在Debug版本中VC对new进行了重定义,建议大家分配内存时尽量使用new  2. 在绘图时创建的GDI对象没有释放,但如果你是使用MF

2008-12-05 09:12:00 5053 1

原创 AfxBeginThread与CreateThread的区别

  如果用MFC编程,不要用CreateThread,如果只是使用Runtime Library,用_BegingThread,总之,不要轻易使用CreateThread。这是因为在MFC和RTL中的函数有可能会用到些它们所封装的公用变量,也就是说AfxBeginThread和_BeginThread都有自己的启动代码是CreateThread所没有的。在用CreateThread所创建的线程中使

2007-04-19 11:08:00 5445

原创 ASSERT和VERSIFY

这里给大家一些提示:  ASSERT()里面的内容在Release版本中不编译。VERIFY()里面的内容仍然编译,但不再判断真假。所以,后者更安全一点。  例如:ASSERT(file.Open(strFileName));       一旦到了Release版本中,这一行就忽略了,file根本就不Open()了,而且没有任何出错信息。如果用VERIFY()就不会有这个问题。当然这不

2007-04-19 11:02:00 1065

原创 好久没更新这里了

  希望大家继续关注这里,我会继续和大家分享相关的技术经验,谢谢

2007-04-19 11:00:00 1062

原创 线程的基础知识

1. 进程与线程有那些区别和联系?      每个进程至少需要一个线程。      进程由两部分构成:进程内核对象,地址空间。线程也由两部分组成:线程内核对象,操作系统用它来对线程实施管理。线程堆栈,用于维护线程在执行代码时需要的所有函数参数和局部变量。      进程是不活泼的。进程从来不执行任何东西,它只是线程的容器。线程总是在某个进程环境中创建的,而且它的整个寿命期都在该进程中。      

2006-06-22 14:21:00 1585

原创 MFC中文档和视图的关系

1、应用程序对象有一个文档模板管理器CDocManager* m_pDocManager(第一次调用AddDocTemplate时new出来)2、文档模板管理器有一个文档模板对象列表CPtrList m_templateList(AddDocTemplate 函数负责添加该列表)3、文档模板对象拥有文档、视图、框架的静态CRuntimeClass成员指针用于动态创建,还有一个m_nIDRe

2006-06-13 14:32:00 4515 1

原创 好好学习

终于将前一个任务完成了,耗时进三个月。现在要抓紧时间把业务知识补上来。加油,加油!

2006-06-13 14:25:00 1138

原创 视图的三叉切分

1、在主框架中声明两个CSplitterWnd对象public:  CSplitterWnd m_wndSplitter1;  CSplitterWnd m_wndSplitter2;2、重载CMainFrame::OnCreateClient,左一右二方式切分BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext

2006-06-08 10:51:00 1360

原创 祝小东西生日快乐!

06-06-06这个日子是属于小东西的!祝生日快乐,天天开心!嘿嘿

2006-06-06 09:41:00 1220

原创 王的男人

昨天买了一张DVD,说是韩国的新片《王的男人》或者叫《国王与小丑》。断臂山,还是霸王别姬,晕!高丽王国的戏子生活,尽然是同性恋,呜呼哀哉!那里的国王给我的感觉和一个笑话很像:从前有一个精神病院,一个医生想考验病人的病是否好了。一天,他在墙上画了一个门,对一群患者说:你们走出这个们晚上就有包子吃!结果一群人蜂拥而上。医生叹了口气,这时突然让医生高兴的是有一个患者没动地方,站在原地。医生很

2006-06-05 10:17:00 1169

原创 程序不能脱离操作系统的原因

操作系统起到如下两个作用:     一、将所有的系统资源收归己有,然后视需要有条件地分配给用户进程,目的是协调诸多进程对系统资源的请求;     二、提供任何一个用户进程都需要的功能。比如维护页表,比如磁盘IO等。这一方面是因为第一条的理由,另一方面也简化了程序的编写。所以这些程序脱离了操作系统就无法执行。     编写“脱离”操作系统的程序主要是要完成:CPU和外设的初始化,在初始化完成之后

2006-06-02 13:20:00 1690 3

转载 VC快捷键总结

F1: 帮助 Ctrl+O   :OpenCtrl+P   :PrintCtrl+N   :NewCtrl+Shift+F2 :清除所有书签F2    :上一个书签Shift+F2  :上一个书签Alt+F2   :编辑书签Ctrl+F2  :添加/删除一个书签F12    :Goto definitionShift+F12  :Goto referenceCtrl+Num+  :Displa

2006-06-02 09:20:00 2182

原创 Windows程序内部运行机制

Windows程序设计是种事件驱动方式的程序设计,主要基于消息的。当用户需要完成某种功能时,需要调用OS某种支持,然后OS将用户的需要包装成消息,并投入到消息队列中,最后应用程序从消息队列中取走消息并进行响应。 消息结构:typedef struct tagMSG {     // msg     HWND   hwnd;     //接收消息的窗口句柄。和哪个窗口相关联。

2006-06-01 14:32:00 1162

原创 办公室挺热的

  夏天来了  办公室没有窗户,只有一个门,中央空调有些不好使  呵呵,不过没关系,锻炼毅力了

2006-06-01 14:14:00 1011

原创 关于电脑报

  前天晚上饭后散步的时候,买了一份电脑报。  想起了很多的事情,记得第一次买电脑报是在大一的下学期,那个时候加入了学校的创业实践中心软件部门。从此开始了我的计算机生涯。  刚开始的时候,看到别人买,为了表现自己也开始买。结果很多都看不懂,索性就仍在别处。  回想起来,有些可笑。  

2006-06-01 08:51:00 1254

原创 业务知识

  还有一个月的时间来复习自己的业务知识,要好好的总结一下。

2006-05-31 10:41:00 1120

原创 加油

  昨天本来要取迪沃健身的,可是下午突然感到不舒服,好像有点感冒了,难受呀!  今天上午还是迷迷糊糊的,赶快好起来!加油!

2006-05-30 11:05:00 900

原创 Afx全局函数和MFC常见数据类型

Afx全局函数AfxBeginThread:开始一个新的线程AfxEndThread:结束一个旧的线程AfxFormatString1:类似printf一般地将字符串格式化AfxFormatString2:类似printf一般地将字符串格式化AfxMessageBox:类似Windows API 函数 MessageBoxAfxOuputDebugString:将字符串输往除错装置AfxGet

2006-05-29 10:57:00 1673

原创 MFC映射机制剖析

一、消息映射机制1、消息响应函数:(例:在CDrawView类响应鼠标左键按下消息)1)在头文件(DrawView.h)中声明消息响应函数原型。//{{AFX_MSG(CDrawView)   //注释宏afx_msg void OnLButtonDown(UINT nFlags, CPoint point);//}}AFX_MSG   //注释宏说明:在注释宏之间的声明在VC中灰色显示。af

2006-05-25 14:17:00 1736 3

原创 C++如何处理内联虚函数

  当一个函数是内联和虚函数时,会发生代码替换或使用虚表调用吗? 为了弄清楚内联和虚函数,让我们将它们分开来考虑。通常,一个内联函数是被展开的。         class CFoo {        private:            int val;        public:         int GetVal() { return val; }         int SetV

2006-05-24 11:16:00 1182

原创 inline和static

inline:  在调用处不是call指令,而是插入函数体,适合于短小的函数,省去参数入栈以及执行call、ret指令的过程,提高函数效率。inline指定函数的存储方式。static:   该函数只能访问类的static成员(包括数据和函数),static数据成员对于该类只有一个copy,为所有对象共享,在类对象创建前已经可用。static指定函数的操作方式。

2006-05-24 10:59:00 1254

原创 互为成员两个类的声明

class B;class A{    B * m_pB;};class B{   A mA;}关键有两点:1. 其中的一个类需要提前声明(forward declaration);2. 被提前声明的类在其被具体定义之前只能声明该类的指针或引用,如上面class A定义中只能声明class B的指针(或引用)。   一旦类的定义结束(编译器在遇到类定义的右花括号之后),用该类来声明

2006-05-24 10:54:00 1581

原创 堆和栈的区别

堆:heap是大家共有的空间,分全局堆和局部堆。  全局堆就是所有没有分配的空间  局部堆就是你分配的空间  堆在操作系统对进程初始化的时候分配  运行过程中你也可以向系统要额外的堆,但是记得用完了要还给操作系统,要不然就是内存泄漏  堆里面一般放的是静态数据比如static的数据和字符串常量什么的,资源加载后一般也放在堆里面  一个进程的所有线程共有这些堆,所以对堆的操作要考虑同步和互斥的问题 

2006-05-24 10:34:00 944

原创 C++中的虚函数

1.简介      虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public:    virtual void foo() { cout };class B: public A{public:    virtual void foo() { cout };那么,在使用的时候,我们可以:

2006-05-23 15:34:00 976

转载 指针的艺术

指针的艺术  作为一个C++程序员,指针的直接操作内存,在数据操作方面有着速度快,节约内存等优点,仍是很多C++程序员的最爱。指针是一把双刃剑,用好了它,你就会发现指针有多么的方便,反之,你可能就头疼了,往往会出现意想不到的问题。一.什么是指针:  其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据。

2006-05-23 15:29:00 934

原创 关于C++类成员的初始化

   在使用C++编程的过程当中,常常需要对类成员进行初始化,通常的方法有两种: 第一种方法: CMYClass::CSomeClass(){    x=0;    y=1;}第二种方法: CSomeClass::CSomeClass() : x(0), y(1){}     从技术上说,第二种方法比较好,但是在大多数情况下,两者实际上没有什么区别。第二种语法被称为成员初始

2006-05-23 14:18:00 1332

原创 关于const的几点说明

const1. 限定符声明变量只能被读    const int i=5;    int j=0;    ...    i=j;   //非法,导致编译错误    j=i;   //合法2. 必须初始化    const int i=5;    //合法    const int j;      //非法,导致编译错误3. 在另一连接文件中引用const常量    extern const int

2006-05-23 14:09:00 1189

原创 SQL标准数学函数

ABS 绝对值ACOS 反余弦ASIN 反正弦ATAN 反正切ATAN2 反余切CEIL 大于或等于指定值的最小整数COS 余弦COSH 反双曲EXP 给指定数据的指数值FLOOR 小于或等于指定值的最大整数LN 自然对数LOG(N) 以N为底的对数LOG(10) 以10为底的对数MOD 模POWER 数据整数次幂N/A 随机数ROU

2006-05-22 09:46:00 3793 1

原创 SQL语言基础

一、SQL发展历史  SQL是结构化查询语言(Structrue Query Language)的英文缩写,它上使用关系模型的数据库应用语言,由IBM在70年代开发出来,作为IBM关系数据库原型System R的原型关系语言,实现了关系数据库中的信息检索。     80年代初,美国国家标准局(ANSI)开始着手制定SQL标准,最早的ANSI标准于1986年完成,它也被叫做SQL-86。标准的出台使

2006-05-22 09:35:00 2793

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除