自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (6)
  • 收藏
  • 关注

原创 链表的操作

#ifndef _LIST_H#define _LIST_H#include class CList;typedef void* (CALLBACK *LPENUMFUNC)(void *param, int index, void *data);////////////////////////////////////////////////////////////////////////////

2010-01-29 12:21:00 517

原创 sql的 INNER JOIN, left join,right join语法

inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录INNER JOIN 语法:INNER JOIN 连接两个数据表的用法:SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字

2010-01-28 13:22:00 434

原创 cdecl、stdcall、fastcall、declspec 的用法和区别

首先这三个修饰符是c和c++调用约定 调用约定(Calling convention)决定以下内容:函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。MFC支持以下调用约定:         __cdecl,__stdcal和__fastcalll都是函数调用规范,规定了参数出入栈的顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其

2010-01-18 15:19:00 814

原创 Optimization profile data with PGOMGR

In one of my previous postings I updated some of the information in my MSDN whitepaper on PGO.  In this entry Im going to go into more depth about one of the tools useful for PGO, which is PGOMGR (st

2010-01-14 16:55:00 626

原创 LINQ新特性简介及入门教程

LINQ使查询成为了.NET中头等的编程概念,被查询的数据可以是XML(LINQ to XML)、Databases(LINQ to SQL、LINQ to Dataset、LINQ to Entities)和对象(LINQ to Objects)。LINQ也是可扩展的,允许你建立自定义的LINQ数据提供者(比如:LINQ to Amazon、LINQ to NHibernate、LI

2010-01-11 18:29:00 570

原创 c++异常处理

异常,通常是指程序困难检测到的,运行是不正常的情况,例如被0除,数组越界访问等等。异常处理的语法通常是try{   throw() }catch(){}关键字try以及它后的大括号中的内容我们称其为try块。简单的说,它包含的是可能会出错的地方(就是我们要检测的地方)。当我们检测到一个错误信息的时候,关键字throw就把这个错误抛出来(强呀:)),抛出来怎么办呢?抛哪去呢?我们的catch关键

2010-01-08 14:28:00 463

原创 C++异常处理 2

}} void main(){       ExceptionClass e("Test");       try{           e.mythrow();     }      catch(...)    {         cout       }}这是输出信息:Construct TestConstruct my throwDestruct my throw************

2010-01-08 14:27:00 533

原创 C++ 异常处理入门

C++ 异常处理入门异常:程序执行期间,可检测到的不正常情况。例如:0作除数;数组下标越界;打开不存在的文件;远程机器连接超时;malloc失败等等。程序的两种状态:正常状态和异常状态,发生不正常情况后,进入异常状态,从当前函数开始,按调用链的相反次序,查找处理该异常的程序片断。1.throw 表达式语义:用表达式的值生成一个对象(异常对象),程序进入异常状态。Terminate函数,终止程序的执

2010-01-08 14:26:00 643

原创 0xC0000005: Access Violation

vc编程debug时提示First-chance exception in exShowBmp.exe (HOOKDLL.DLL): 0xC0000005: Access Violation. First-chance exception in exShowBmp.exe: 0xC0000005: Access Violation.  可能的原因: 内存访问错误。应该是访问

2010-01-08 13:38:00 7850

转载 error LNK2019:unresolved external symbol *** referenced in function ***的解决方案

 当头文件中声明了一个函数,但是在相应的源文件中却没有对该函数进行定义,则会出现为“解决的外部符号”(unresolved external symbol )错误。另外,当一个函数调用了外部的一个库文件中的函数,但是在当前project的properties中并没有将所依赖的(dependent)库文件包含进来时,也会出现这种错误。      综上,当一个solution在linking时找不

2010-01-07 19:29:00 903

转载 C++链接器工具错误:LNK2001, LNK2019

这是归属于链接器工具错误 这一类。无法解析的外部符号“symbol”代码引用了链接器无法在库和对象文件中找到的内容(如函数、变量或标签)。可能的原因 代码请求的内容不存在(例如,符号拼写错误或使用错误的大小写)。 代码请求的内容错误(使用的是混合版本的库,一些库来自产品的一个版本,而其他则来自另一个版本)。 该错误信息之后为致命错误 LNK1120。具体原因

2010-01-05 19:43:00 751

原创 C/C++中函数指针的含义

函数存放在内存的代码区域内,它们同样有地址,我们如何能获得函数的地址呢?  如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址。  定义一个指向函数的指针用如下的形式,以上面的test()为例:  int (*fp)(int a);//这里就定义了一个指向函数的指针  函数指针不能绝对不能指向不同类型,

2010-01-05 18:57:00 416

原创 函数调用的几个概念

左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。  _stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数的字节数。  2、C调用约定(即用__cdecl关键字说明)按

2010-01-05 18:54:00 464

转载 在名字空间中声明类和成员函数

虽然很多程序员都熟悉名字空间的概念,但他们常常都是被动地使用名字空间。也就是说他们使用的是第三方定义的成员(如标准库的类和函数),而不是在名字空间中声明自己的类和函数。本文拟讨论如何在名字空间中声明自己的类和函数,以及如何在程序中使用它们。  名字空间是一个范畴,它包含类声明,函数声明,常量声明和模板声明等名字空间成员。例如:namespace proj_alpha{//下面是名字空间 p

2010-01-05 18:51:00 503

原创 C/C++中回调函数初探

对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。  什么是回调函数?  简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。  为什么要使用回调函

2010-01-05 18:47:00 427

原创 C++中禁止异常信息传递到析构函数外

在有两种情况下会调用析构函数。第一种是在正常情况下删除一个对象,例如对象超出了作用域或被显式地delete。第二种是异常传递的堆栈辗转开解(stack-unwinding)过程中,由异常处理系统删除一个对象。  在上述两种情况下,调用析构函数时异常可能处于激活状态也可能没有处于激活状态。遗憾的是没有办法在析构函数内部区分出这两种情况。因此在写析构函数时你必须保守地假设有异常被激活,因为如果在一

2010-01-05 18:43:00 453

原创 C++中类的多态与虚函数的使用

 类的多态特性是支持面向对象的语言最主要的特性,有过非面向对象语言开发经历的人,通常对这一章节的内容会觉得不习惯,因为很多人错误的认为,支持类的封装的语言就是支持面向对象的,其实不然,Visual BASIC 6.0 是典型的非面向对象的开发语言,但是它的确是支持类,支持类并不能说明就是支持面向对象,能够解决多态问题的语言,才是真正支持面向对象的开发的语言,所以务必提醒有过其它非面向对象语言基础的

2010-01-05 18:38:00 418

原创 C++类对象的深拷贝、浅拷贝构造函数

在学习这一章内容前我们已经学习过了类的构造函数和析构函数的相关知识,对于普通类型的对象来说,他们之间的复制是很简单的,例如:int a = 10;int b =a;   自己定义的类的对象同样是对象,谁也不能阻止我们用以下的方式进行复制,例如:#include usingnamespacestd;classTest{public:Test(inttemp){p1=temp;}prote

2010-01-05 18:35:00 454

原创 C++中的全局namespace

我们应该知道传统的C++只有一个全局的namespace,但是由于现在的程序的规模越来越大,程序的分工越来越细,全局作用域变得越来越拥挤,每个人都可能使用相同的名字来实现不同的库,于是程序员在合并程序的时候就会可能出现名字的冲突。namespace引入了复杂性,解决了这个问题。namespace允许像类,对象,函数聚集在一个名字下。本质上讲namespace是对全局作用域的细分。   我想大家都见

2010-01-05 18:32:00 650

转载 C++中的异常(exception)

.简介   异常是由语言提供的运行时刻错误处理的一种方式。提到错误处理,即使不提到异常,你大概也已经有了丰富的经验,但是为了可以清楚的看到异常的好处,我们还是不妨来回顾一下常用的以及不常用的错误处理方式。1.1 常用的错误处理方式   返回值。我们常用函数的返回值来标志成功或者失败,甚至是失败的原因。但是这种做法最大的问题是如果调用者不主动检查返回值也是可以被编译器接受的,你也奈何不了

2010-01-05 18:24:00 720

原创 c++ const用法总结

#include void func(const int* p, int n);const char * getStr();class CA{private:int _nA;public:CA(int a):_nA(a){}inline int getA() const{   //_nA++; //error C2166: l 值指定常数对象   return _nA;}inline

2010-01-05 13:48:00 1093

原创 C++ 学习(一)类型转换

1.类型转换按方式分为隐式转换和显式转换。        隐式转换:由编译器自动完成,无需用户干预。        显式转换:采用一定的形式进行转换:类型名(数据) / C中(类型名)数据2.关于转换构造函数        构造函数的一种,主要用于类型转换,格式严格规定为单参数构造函数。        例:Complex类             Complex(double r){Real=r;

2010-01-05 13:37:00 439

原创 COM 学习笔记(1)

QueryInterface函数主要用于COM接口的查询。它是COM接口定义IUnknown的成员函数,客户可以调用QueryInterface来决定组件是否支持某个特定的接口。       组件COM接口都是从IUnkonwn接口继承而来,任何一个接口都可以用IUnknown的成员QueryInterface来获取它所支持的其它接口。1)定义:       HRESULT _st

2010-01-05 13:31:00 659

原创 COM 学习笔记(2)-引用计数

引用计数 COM接口采用引用计数来控制组件的生命周期。 主要用AddRef ,Release 来进行内存管理,当客户从组件中取得一个接口时,此引用计数值将增1。当客户使用完某个接口后,组件的引用计数值将减1。 当引用计数值为0时,组件即可将自己从内从中删除。  (1)正确使用引用计数的三条简单原则:    1)在返回之前调用AddRef.   2)使用完接口后调用Release.   3)在赋值之

2010-01-05 13:30:00 761

转载 C++ Const 用法总结

const主要是为了程序的健壮型,减少程序出错.最基本的用法:const int a=100; b的内容不变,b只能是100也就是声明一个int类型的常量(#define b =100)int const b=100; //和上面作用一样 const指针和引用一般用在函数的参数中int* m = &a; //出错,常量只能用常指针int c= 1;const int*pc = &c;//常指针可指

2010-01-05 13:26:00 546

基于docker的测试环境解决方案

利用docker快速搞定各种测试环境,让你不再为测试环境忧愁。

2017-09-30

系统接口自动化

讲述如何快速低成本做接口自动化的文档,迅速搭建框架

2017-09-30

Selenium经典教程

快速上手selenium的教程,快速实现web自动化测试的系统文档

2017-09-30

经典c语言教程(嵌入式)

超级经典的c语言学习教程,对入门者或者专业程序员都很有帮助。

2008-12-30

空空如也

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

TA关注的人

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