51CTO博客开发
原文出自:http://dev.21tx.com/2004/04/28/10549.html Microsoft Developer Studio为大多数标准的数据库格式提供了32位ODBC驱动器。这些标准数据格式包括有:SQL Server、Access、Paradox、dBase、FoxPro、Excel、Oracle以及Microsoft Text。如果用户希望使用其他数据格式,则需要安装
用ADO操作数据库的方法步骤 ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。 _ConnectionPtr接口返回一个记录集或一个空指针。 通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。使用_ConnectionPtr接口返回一个记录
偶然间读到大神的著作,了解到异常处理也是程序设计中非常重要的一块,略有收获,遂记录之,以备查用。现有如下简单代码,vs2010测试通过 1.对象被抛出作为异常时,总会发生拷贝赋值,且临时对象拷贝以所抛出对象的静态类型为准 // 异常抛出与函数调用的差异.cpp: 主项目文件。 #include "stdafx.h&qu
原文出处:http://blog.csdn.net/wuzh1230/article/details/7212817 函数与子函数之间的调用关系可以用一个链来表示,调用连,相关的一个重要数据结构就是栈帧,子函数返回的时候,栈展开,构造在栈上的对象被编译器设置的析构函数析构销毁。 类似的,windows上的结构化异常处理也有一个类似的异常处理链,而且这个链刚好也是在栈上构造的
当运算符new找不到足够大的连续内存块来为对象分配内存时将会发生什么?一个称为 new-handler的函数被调用。 对于new-handler的缺省动作是抛出一个异常。然而,如果我们在程序里用堆分配,至少要用“内存已用完”的信息代替 new-handler,并异常中断程序。用这个办法,在调试程序时会得到程序出错的线索。 通过包含NEW. H,然后以我们想装入的函数
extern 作用1:声明外部变量 现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是 互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。 例1: 创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件: //A.cpp: int iRI; int main() { //..... } //B.cpp int iR
怎么对容器中的所有对象都进行同一个操作?我们可能首先想到的是用循环来实现。 比如有如下的一个类: class ClxECS { public: int DoSomething() { &
1.如何理解容器适配器,其与顺序容器有什么区别? adapter原意是插座、适配器、接合器的意思。现在我需要一个栈结构,我们可以用deque来模拟,只在一端进行元素插入和弹出,另一端不动。但deuqe毕竟不能直接作为一个stack,它并不能直接地严格地满足你的要求,因为你不能防止别人在另一端乱动你的东西。你需要对它进行一些包装,作一些限制,使之只能在一端进行插入和删除。也就是说你必须提供一个&l
转自:http://space.itpub.net/8797129/viewspace-693648 简单的可以理解为: heap(堆):是由malloc之类函数分配的空间所在地。地址是由低向高增长的。 stack(栈):是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几
1.引用reference 引用用在的地方:(1)作用于函数参数(2)作用于函数返回类型。对于第一种,很容易理解,就是对函数实参变量的引用(及实参的别名);但对于第二种,作为返回类型时,情况就不大明显,至少本人是这样认为的,考虑下面的代码,此时怎样理解返回的引用。我个人理解:返回的是对全局变量a的引用,这个引用是匿名的,没有明确告诉a变量的别名是什么,我们在使用时,权且就认为这个别名也叫a。
转载自:http://hi.baidu.com/lovestartian/item/5e10f99e1b1faedb1e4271a3 C++类的内存地址存放问题(动态更新中) 了解C++类地址的存放和分配等问题,能帮助我们更深入、更清晰了解类的组成及其使用。 自己目前不是很清楚,先收集一些网上资料,而后再慢慢补充增加的了解... //--------------------------
转自:http://blog.csdn.net/haoel/article/details/1948051 C++ 虚函数表解析 陈皓 http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过
1.先看一下定义的模板类(模拟数组) template<class T> class Array { public: Array(int lowBound,int hingBound); ... private: vector<T> data;//数组对象中存在一个vector容器对象 size_t size; int LBound,HBound;
1. 先看一个模板类 template<class T> class NamedPtr { public: NamedPtr(const string& initName,T* initPtr); friend ostream& operator<<(ostream &os,N
先把答案说出来:拷贝构造函数参数(参数是本类类型时)之所以只能是引用类型,是为了避免调用时产生无限递归!如果你懂得,就崩往下看了。 在C++中, 构造函数,拷贝构造函数,析构函数和赋值函数(赋值运算符重载)是最基本不过的需要掌握的知识。 但是如果我问你“拷贝构造函数的参数为什么必须使用引用类型?”这个问题, 你会怎么回答? 或许你会回答为了减少一次内存拷贝? 很惭愧的是,
1.演变历史 它们是按照这个时间先后的顺序逐步出现的,史前->ODBC->OLEDB->ADO->ADO.Net。 看看Wiki上的MDAC定义:“Microsoft Data Access Components(MDAC)是微软专门为数据访问功能而发展的应用程序开发接口,做为微软的统一化数据访问(Universal Data Access; UDA)解决方
一、ADO简介 ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,请不必为此担心,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API、DAO、RDO都要容易使用,并不失灵活性。本文将详细地介绍在VC下如何使用ADO来进行数据库应用程序开发,并
1.动态链接库DLL的概念: 动态链接库是包含函数和数据的模块,将实现一定功能的函数和数据按照一定的规则封装在一起。简单地讲,DLL就是完成一定功能的模块,既可以包含数据、函数,也可以包含类。任何程序都可以通过调用动态库的方式使用Win32 API,从而可以访问系统底层接口。 2.DLL中的两种对象 导出对象:如导出数据、导出函数和导出类,此种对象可以被其他可执行模块调用。虽然DLL可以导出
VC控制台程序也可以使用MFC类库中的某些基础类型的类,如CTime,CString等。但是需要经过一些基本的设置,具体步骤: 1.project->setting->general 里的Microsoft Foundmation class选择“Use MFC in a Shared DLL”, 2 添加头文件#include <afxwin.h&g
工厂方法的结构 [1] 工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。
0 引言 0.1 设计模式解析(总序) 0.2 设计模式解析后记 0.3 与作者联系 1 创建型模式 1.1 Factory模式 1)为了提高内聚(Cohesion)和松耦合(Coupling) ,我们经常会抽象出一些类的公共接口以形成抽象基类或者接口。 这样我们可以通过声明一个指向基类的指针来指向实际的子类实现,达到了多态的目的。
CProgressCtrl类提供了少量的成员函数用来设置进度条: void SetRange( int nLower, int nUpper ); 该函数用来设置进度条的范围.参数nLow和nUpper分别指定了最小和最大值,缺省时进度条的范围是0-100. int SetPos( int nPos ); 用来设置进度条的当前进度.函数返回的是进度条的前一个进度.
很多朋友向我索取MCI的资料,但是我这里的资料早就不知道哪里去了,这里把MSDN里面的东西拿出来给大家看一下,方便英语不好的朋友。 用MCI进行编程主要有两个东西需要掌握,下面的篇幅用来说明这两个方面。 一、mciSendCom
Windows提供了3种进行内存管理的方法: • 虚拟内存,最适合用来管理大型对象或结构数组。 • 内存映射文件,最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行的多个进程之间共享数据。 • 内存堆栈,最适合用来管理大量的小对象。 内存映射文件
一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。 静态控件不需要调用Create()函数来创建。 而创建动态控件有很大不同,以下以按
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号