C&c++
文章平均质量分 68
this_heart_add_add
这个作者很懒,什么都没留下…
展开
-
使用VS2005下自带的MSSQL 2005 EXPRESS
VS2005安装后自带一个试用版的SQL2005 EXPRESS版,方便了开发时使用数据库。(不用再安装一个sql 2005,怪占用资源的!)如何使用?安装后,在开始菜单里出现个sql的菜单组,但是找不到sql server的控制台,习惯用sql2000,以为应该有个控制台,但是怎么也找不到,打开vs2005也找不到。别着急,在vs2005的左侧有个服务器资源管理器在这里添加数转载 2013-05-07 16:44:22 · 1059 阅读 · 0 评论 -
CPropertySheet的按钮的修改
IntroductionIn my applications, I usually need to change the default look and feel and the behavior of Property Sheets. Working with property sheets and pages is really a pain and you must do most转载 2013-04-10 21:27:03 · 1185 阅读 · 0 评论 -
VC/C++的面试题
1、估计一下广州有多少理发师,如果允许,你还需要那些调研工作?并给出你的推导过程。你认为你的 估算结果可信吗?2、看过那些软件方面的书籍3、什么是软件,软件开发包括那些步骤,并说出你对这些步骤的理解4、OSI网络结构的七层模型分别是什么,并说出你认为划分为7层的理由。5、软件过程中了解、使用过版本控制或建模工具吗?对你工作有什么帮助?6、软件过程中你都写过什么文档?分别转载 2013-04-09 20:28:34 · 1208 阅读 · 0 评论 -
C++中重载、重写(也称覆盖)、隐藏
JAVA中语言中方法(函数)调用有两种特殊的形态:重载与重写;而C++由于增加了virtual这个虚函数关键字,给函数调用又增加了变数:除了重载、重写(也称覆盖)之外还多了隐藏这么一说。我相信我们绝大多数人写代码时,为了程序的可读性与赶速度的原则,下意识的避开这些类似于脑筋急转弯的语法,尽量使用不同的函数名来区分基类与派生类的函数(当然,不能避开的时候也是非常多的)。可是有时候,有些面试主考官总喜转载 2013-04-09 20:06:23 · 656 阅读 · 0 评论 -
Win32 Application 、Win32 Console Application、MFC工程项目
Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序。Win32 Application 是标准 windows程序,完全拥有windows的特性,也即我们常说的窗口应用程序!它通过GUI(Graphics User Interface图形用户接口)可以把窗口界面做得比较个性化,比如圆形的、不规则形状的等等,另外,我原创 2013-04-09 19:01:45 · 5367 阅读 · 0 评论 -
画出wav文件声音数据的波形曲线
WAV文件格式波形音频文件(*.WAV)是Microsoft为Windows设计的多媒体文件格式RIFF(The Resource Interchange File Format,资源交换文件格式)中的一种(另一种常用的为AVI)。RIFF由文件头、数据类型标识及若干块(chunk)组成。 WAV文件的基本格式类型内容变量名大转载 2013-03-25 17:34:47 · 2631 阅读 · 0 评论 -
VC6.0向工程中添加文件和打开文件出错“"0x5003eaed"指令引用的"0x00000000"内存”解
据说这个错误是因为和微软的其他软件相冲突了。下面就看看如何解决这个问题:第一步:下载一个FileTool插件,下载的地址:http://download.microsoft.com/download/vc60ent/s1/6.0/w9xnt4/en-us/filetool.exe这个是官方地址,是一个自解压文件(自己解压)。第二步:打开这个工程的工程文件或工程空间文件,然后转载 2013-04-09 09:22:35 · 3168 阅读 · 0 评论 -
vc中读取wav文件的时长和文件播放的几种方式
中读取wav文件的时长和文件播放的几种方式读取wav文件的时长:int GetTimeLength() //获取声音文件数据的函数,pString参数指向要打开的声音文件; { HMMIO file;//定义HMMIO文件句柄; file=mmioOpen(".//TTS.wav",NULL,MMIO_READWRITE);//以读写模式打开所给的WAVE文件;转载 2013-03-25 16:40:34 · 1382 阅读 · 0 评论 -
C++中TRACE宏及assert()函数的使用
C++中TRACE宏的使用TRACE宏对于VC下程序调试来说是很有用的东西,有着类似printf的功能;该宏仅仅在程序的DEBUG版本中出现,当RELEASE的时候该宏就完全消失了,从而帮助你调试也在RELEASE的时候减少代码量。使用非常简单,格式如下:TRACE("DDDDDDDDDDD");TRACE("wewe%d",33转载 2013-03-25 16:59:20 · 1202 阅读 · 0 评论 -
GlobalAlloc函数
在Windows系统里,有一项功能非常实用,就是剪贴板功能,它能够从一个程序里与另一个程序进行数据交换的功能,也就是说两个进程上是可以共享数据。要实现这样的功能,Windows系统在底层上有相应的支持,就是高端地址的内存是系统内存,这样就可以不同的进程进行共享数据了。因此,调用函数GlobalAlloc来分配系统内存,让不同的进程实现共享数据,也就是剪贴板功能,可以在一个进程内分配内存,在另一个进转载 2013-04-11 13:22:07 · 1877 阅读 · 0 评论 -
注册ActiveX控件的几种方法
使用ActiveX控件可快速实现小型的组件重用、代码共享,从而提高编程效率,降低开发成本。但是ActiveX控件对于最终用户并不能直接使用,因为ActiveX控件必须先在Windows中注册。注册ActiveX控件一般来说有六种途径,它们有各自的优点,运用范围也不同。 Regsvr32.exe注册 Regsvr32.exe位于Windows目录的system转载 2013-04-11 13:53:15 · 730 阅读 · 0 评论 -
用VC 6.0实现串行通信的三种方法
摘要: 本文介绍了在Windows平台下串行通信的实现机制,讨论了根据不同的条件用Visual C++ 设计串行通信程序的三种方法,并结合实际,实现对温度数据的接收监控。 在实验室和工业应用中,串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。依据不同的条件实现对串口的灵活编程控制是我们所需要的。 在光学镜片镀膜工艺中,用单片机进行转载 2013-04-12 14:40:46 · 1163 阅读 · 0 评论 -
RGB888转RGB565
今天在REVIEW代码的时候,发现了这样一个宏定义:#define COLOR_TO_MTK_COLOR_SIMUL(color) ((((color) >> 19) & 0x1f) |((((color) >> 10) & 0x3f)转载 2013-05-05 21:10:45 · 1266 阅读 · 0 评论 -
深入理解C++中的mutable关键字
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面转载 2013-05-07 09:52:12 · 585 阅读 · 0 评论 -
24位位图转4位彩色图(BMP)
24位位图转4位彩色图(BMP)之前的“24位位图转4位灰度图”中已经说明了,调色板与图象数据格式。这里对图象数据格式做下补充,并讲解24位位图转4位彩色图的算法1.图象数据格式在我完成这个算法的编码时,运行效果有一个非常严重的错误,就是所有的蓝和红色反了。也就是说,应该是蓝色的地方呈现了红色,应该是红色的地方呈现了兰色。我的分析为:因为一般来说,BMP文件的数据是从上转载 2013-04-15 14:31:35 · 3270 阅读 · 1 评论 -
24位真彩位图转4位(16色)灰度图(BMP)
首先要声明的是,这个4位(16)色图比较特殊,不是彩色的16色图,而已一个用4位16色,模拟的灰度图什么是灰度图?灰度图是指只含亮度信息不含彩色信息的图象,就像我们平时看到的亮度由暗到明的黑白照片,亮度变化是连续的。因此,要表示灰度图,就需要把亮度值进行亮化。通常分成0-255共256个级别,0最暗(全黑),255最亮(全白)。BMP格式的文件中并没有灰度图这个概念,但是可以很容易转载 2013-04-15 14:00:56 · 3941 阅读 · 0 评论 -
将摄像头输出的原始数据文件转换成bmp图像
引言:从摄像头和传感器获得的视频数据是没有办法直接被电脑识别的,所以需要进行转化,我昨天在做项目的时候遇到了这个问题,根据查阅相关资料,实现了将摄像头输出的原始数据文件转换成bmp图像的程序。 语言:C/C++测试平台:VC6.0 先把bmp.h头文件贴出来:#ifndef __BMP_H__#define __BMP_H__ typ转载 2013-04-14 14:59:24 · 6031 阅读 · 0 评论 -
bmp文件
文件格式格式组成典型的BMP图像文件由四部分组成:1:位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息;2:位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息;3:调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板;4:位图数据,这部分的内容根据BMP位图使用的位转载 2013-04-14 14:30:45 · 1094 阅读 · 0 评论 -
BMP文件格式详解(BMP file format)
BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源。Windows的图形用户界面(graphical user interfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持。转载 2013-04-13 15:34:02 · 625 阅读 · 0 评论 -
bmp文件格式
BMP文件存储结构的格式可以在Windows中的WINGDI.h文件中找到定义。BMP文件总体上由4部分组成,分别是位图文件头、位图信息头、调色板和图像数据,如表5-1所示。表5-1 BMP文件的组成结构位图文件头(bitmap-file header)位图信息头(bitmap-information header)彩色表/调色板转载 2013-04-13 17:10:25 · 982 阅读 · 0 评论 -
转:C语言头文件下包含函数(math.h stdio.h stdlib.h string.h)
math.h常用函数int abs (int x);double acos (double x);double asin (double x);double atan (double x);double atan2 (double y, double x);double atof (const char *s);double ceil (转载 2013-04-03 20:04:28 · 1989 阅读 · 0 评论 -
转:《C++ Templates》读书笔记
有三种模板参数(形参):(1)类型参数(这是使用得最多的)(2)非类型参数(3)模板的模板参数类型参数: 类型参数是通过关键字typename或者class引入。关键字后面必须是一个简单的标识符,后面用逗号来隔开下一个参数声明,等号代表接下来的是缺省模板实参,一个封闭的尖括号(>)表示参数化子句的结束。 在模板声明内部,类型参数的作用类似于typedef名称。例如,如果转载 2013-04-03 20:02:56 · 529 阅读 · 0 评论 -
转:从《The C Programming Language》中学到的那些编程风格和设计思想
读书不是目的,关键在于思考。很早就在水木上看到有人推荐《The C Programming Language》这本书,一直都没看,开学一个月就专心拜读了一下,并认真做了课后习题。读来收获不少,主要有两点:一是加深了自己对一些基础知识的理 解和感悟;二是从中学到了一些不错的编程风格和设计思想,这些东西虽看起来不起眼但细细嚼来还是很值得学习的。下面就从四个方面做一个小总结,水平有限转载 2013-04-03 20:00:07 · 712 阅读 · 0 评论 -
指针与const限定符
const限定符和指针结合起来常见的情况有以下几种。const int *a;int const *a;这两种写法是一样的,a是一个指向const int的指针,a所指向的内存单元不可改写,所以(*a)++是不允许的,但a可以改写,所以a++是允许的。int * const a; a是一个指向int型的const指针,*a是可以改写的,但a不允许改写。int co原创 2013-03-08 14:43:46 · 638 阅读 · 0 评论 -
C++中派生类访问基类protected成员的范围
C++新手程序员的一个常见误解是访问基类的 protected 成员的范围:class Query {public:const vector* locations() const { return &_loc; }// ...protected:vector _loc;// ...};我们是在说从 Query 派生的类可以直接访问数据成员_loc 而程序的其余部原创 2013-03-04 14:50:02 · 3231 阅读 · 0 评论 -
C++基本语法
C++中构造函数的调用:class Type{} void main(){ Type obj; //ok,编译器调用了默认的构造函数 Type obj1=Type(); //ok,显示调用了默认的构造函数Type obj3(); //error ,其是声明了一个无参并返回Type类对象的函数obj}构造函数和析构函数都不原创 2013-03-04 18:25:24 · 367 阅读 · 0 评论 -
C++中的虚函数
缺省情况下 ,类的成员函数是非虚拟的 nonvirtual ,当一个成员函数为非虚拟的时候通过一个类对象(指针或引用)而被调用的该成员函数, 就是该类对象的静态类型中定义的成员函数 例如 void Query::display( Query *pb ){set *ps = pb->solutions();// ...display();}pb 的静态类型是 Q原创 2013-03-04 15:19:14 · 374 阅读 · 0 评论 -
C++中类型转化
对象类型向上向下转化(对象转化是对象间的按成员赋值,有新的存储被分配(有新对象产生) 类型指针向上向下转化(转化后没有得到引得对象,也可以说没有新的存储分配,我们只是通过一个小的(转化后的对象的大小)视角去看待这个对象。因此在诸如对象的释 放 等方面会牵扯一些问题,语言单独支持的虚析构就是为了解决这种转化后对象释放不对称的问题。类层次结构中类型之间的转化不同于普通或内置类型之间原创 2013-03-03 17:08:38 · 435 阅读 · 0 评论 -
C++字符指针的特殊
如果我们对一个非字符的指针进行操作,方法是这样的: 注意:int* p;则p[i]等价于*(p+i) 定义: (1)int a=7; int *p=&a; 或者 (2)int a=7; int *p; p=&a; 或者 (3)int a=7; int *p; *p=a; (1)这样定义的原因是因为等号两边的类型必须匹配,int *p转载 2013-01-22 19:34:56 · 456 阅读 · 0 评论 -
虚函数表指针与类型
1.虚函数表指针参与继承虚函数指针是在首次声明虚函数的类型中北编译器添加进去的,因为在所有这个类型的派生类中和虚函数有相同签名的函数自动作为虚函数处理,所以所有那些派生类型中都需要有一个虚函数表指针以作为支虚拟特性的基础设施。因此,我们可以认为这个虚函数表指针参与了继承,虽然每个派生类型中的虚函数指针可能是被编译器分别添加进去的,但这和我们的认识不矛盾。2.类型对应虚函数表 对于一个原创 2013-03-03 17:05:32 · 1040 阅读 · 0 评论 -
void指针
和引用一样,可以声明任何类型的指针(不包括void&,它不存在)。甚至可以使用void*类型的指针作为媒介在形参和实参以及各种指针类型之间进行转化。有代表性的转化包括:指针和数组之间的转化,指针和结构体之间的转化,指针和函数之间的转化。归根到底,这些转化都是以指针为中心的。数组和结构体之间的转化将是错位的,而它们和函数之间的转化是没有意义的。之所以会是这样,就在于指针本质上是无类型的(vo原创 2013-01-22 20:08:19 · 525 阅读 · 0 评论 -
深入理解const char
深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**con转载 2013-03-08 19:42:00 · 1047 阅读 · 0 评论 -
printf()函数
printf函数对输出表中各量求值的顺序是自右至左进行的(也即程序执行的过程中参数的压栈顺序是从右至左的,并且压栈时压入的是值,因为参数的压栈是在程序的执行过程中,所以即使参数列表中有函数调用则在压栈时也即计算出来(即调用此函数去执行),把得到的值压入栈中。如:static const char * msg[]={"sunday","monday" };char * get_a_day原创 2013-03-09 09:49:05 · 673 阅读 · 0 评论 -
C中字符串操作
字符串可以看作一个数组,它的每个元素是字符型的,例如字符串"Hello, world.\n"图示如下:H e l l o , w o r l d . \n \0(15个字符)注意每个字符串末尾都有一个字符'\0'做结束符,这里的\0是ASCII码的八进制表示,也就是ASCII码为0的Null字符,在C语言中这种字符串也称为以零结尾的字符串(Null-terminatedString)。原创 2013-03-08 19:38:01 · 4007 阅读 · 0 评论 -
C语言中将结构体写入文件
可以使用fwrite()将一个结构体写入文件: fwrite(&some_struct,sizeof somestruct,1,fp);对应的fread函数可以再把它读出来,此处fwrite受到一个结构的指针并把这个结构的内存映像作为字节流写入文件。sizeof操作符计算出结构占用的字节数。但是这样用内存映像写出的数据文件却是不能够移植的,尤其是当结构中包含浮点成员或指针的时候。结构转载 2013-04-03 19:14:05 · 1850 阅读 · 0 评论 -
转:C语言可变参数实现
C语言可变参数实现from:http://www.cnblogs.com/xkfz007/category/323899.html(还有很多不错的文章,可以去参考下......第一:什么是可变参数int printf(const char* format, ...);看到printf的定义大家就知道了,只有一个固定的const char*参数,后面的都是不定长的参数转载 2013-04-03 20:11:41 · 631 阅读 · 0 评论 -
转:多态性----vptr----vtable
多态性----vptr----vtable多态性 (polymorphism) 是面向对象编程的基本特征之一。而在 C++ 中,多态性通过虚函数 (virtual function) 来实现。我们来看一段简单的代码: #include using namespace std;class Base{int a;public:virtual void fun1转载 2013-04-03 20:07:08 · 540 阅读 · 0 评论 -
结构体类型的静态成员
由于系统职位变量分配存储空间,不为类型分配空间,因此,不能用关键词register,auto,extern来修饰结构体类型中的成员,但可用static修饰结构体类型中的成员。被static修饰的结构体成员称为静态成员。静态成员不同于其他存储类型的成员,所有该结构体类型的变量都共享静态成员。可以利用静态成员的这一特性,存储共享信息或进行数据传递。由于在定义结构体类型时,并没有为静态成员分配存原创 2013-04-03 18:56:38 · 6847 阅读 · 0 评论 -
C与C++
因为之前只学过了C,没有学习C++,所以一直对C++中的类搞不清楚。因为c中有struct结构体,而C++中的结构体struct和类class基本上可以看做是一个类型(注意类也只是定义了一个类型),因此我们可以把c++中的类class就当成我们在c中学的struct。struct用在哪以及怎么用都可以用class代替!原创 2013-03-12 08:39:49 · 638 阅读 · 0 评论 -
C语言变参函数解析
1 函数声明首先,要实现类似printf()的变参函数,函数的最后一个参数要用 ... 表示,如 int log(char * arg1, ...)这样编译器才能知道这个函数是变参函数。这个参数与变参函数的内部实现完全没有关系,只是让编译器在编译调用此类函数的语句时不计较参数多少老老实实地把全部参数压栈而不报错,当然...之前至少要有一个普通的参数,这是由实现手段限制的。2转载 2013-03-09 12:38:24 · 891 阅读 · 0 评论