自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 图形图像基础 (-)

1.常用色彩空间1.1:RGB颜色空间 RGB(Red 红, Green 绿, Blue 蓝)颜色空间是最常见的一种颜色空间,它被称之为与设备相关的色彩空间。 1.2:CMY/CMYK颜色空间CMY(Cyan 青,Magenta 品红,Yellow黄)颜色空间常应用于印刷工业。通常所使用的设备为纸张上沉积彩色颜料的设备,包括彩色打印机,或者复印件,都要求输入CMY数据。即使

2013-12-18 14:38:53 984

原创 C++可变形参

一直以来习惯了使用printf,Cstring.Format函数,但是对于可变参数没有深入研究过,觉得可变参数是一个神奇的技术。工作闲下来的时候,想研究研究看可变参数的使用和原理。目前C提供的可变参数的申明为void function(const char *format, ...);这样就可以在function中使用可变参数C提供了几个宏用于使用可变参数va_listva

2013-12-18 13:38:43 779

转载 CString类的转化(高级)及小技巧

CString类的转化(高级)通过阅读本文你可以学习如何有效地使用 CString。  CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。  使用CString可以让你对字符串的操作更加直

2013-12-06 13:06:17 529

转载 MFC 界面线程和工作者线程--非模态对话框

每个系统都有线程,而线程的最重要的作用就是并行处理,提高软件的并发率。针对界面来说,还能提高界面的响应力。 线程分为界面线程和工作者线程,界面实际就是一个线程画出来的东西,这个线程维护一个“消息队列”,“消息队列”也是界面线程和工作者线程的最大区别,这个词应该进到你的脑子里,根深蒂固的!如果在界面线程的某个地方停住,这说明它处理不了窗口消息了,所以有时候我们就会看到整个界面无响应了。这种问

2013-09-17 14:13:31 2339

转载 线程中CreateEvent和SetEvent及WaitForSingleObject的用法-------wince里面的中断IST经常使用。

线程中CreateEvent和SetEvent及WaitForSingleObject的用法首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面.CreateEvent 函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信号,不发信号。 SetEvent/ResetEvent分别将EVENT置为这两种

2013-09-17 11:07:46 778

转载 C# 委托的妙文【转】

转自 :http://blog.csdn.net/fdsa123456/article/details/3877678 委托和事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个

2013-09-10 10:54:27 513

转载 MFC消息循环和消息泵

http://www.cnblogs.com/dubingsky/archive/0001/01/01/1511299.html

2013-08-27 18:44:13 601

转载 数组,结构体初始化为{0}

一直以为 int a[256]={0};是把a的所有元素初始化为0,int a[256]={1};是把a所有的元素初始化为1.调试的时查看内存发现不是那么一回事,翻了一下《The C++ Programming Language》总算有定论。PDF的竟然不然复制,就把它这章翻译了,如下5.2.1   数组初始化数组可以用一个列值来初始化,例如         int v1[] ={

2013-08-15 17:07:01 20687

转载 线程的基础知识

http://blog.csdn.net/oyljerry/  线程的基础知识1. 进程与线程有那些区别和联系?     每个进程至少需要一个线程。         进程由两部分构成:进程内核对象,地址空间。线程也由两部分组成:线程内核对象,操作系统用它来对线程实施管理。线程堆栈,用于维护线程在执行代码时需要的所有函数参数和局部变量。        进程是不活泼的。

2013-07-19 10:34:57 869

转载 c++容器1(vector、list、deque)

http://blog.csdn.net/xfortius/article/details/7760490vector ,deque 和 list顺序性容器:向量 vector :  是一个线性顺序结构。相当于数组,但其大小可以不预先指定,并且自动扩展。它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数组。在创建一个vector 后,它会自动在内存中分配

2013-07-10 17:54:18 528

转载 c++ UML类图分析

本文是我在读《大话设计模式》时的一篇读书笔记      这个矩形框代表一个类,这是一个类图,它包括三层:显示类的名称,如果是抽象类,则用斜体表示。类的特性,通常为字段和属性。类的操作,通常是方法和行为。注意前面的符号:"+"表示Public,"-"表示private,"#"表示protect。   这是一个接口图,与类图的主要区别

2013-06-20 13:04:26 1730

转载 UML 之 C++类图关系全面剖析

UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)。而其中关联又分为双向关联、单向关联、自身关联;下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里。1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说

2013-06-20 12:59:34 650

转载 c/c++里的 堆区 栈区 静态区 文字常量区 程序代码区

一个由C/C++编译的程序占用的内存分为以下几个部分  1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。     栈(stack):是自动分配变量,以及函数调用所使用的一些空间(所谓的局部变量),地址由高向低减少;       2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由O

2013-06-18 15:45:53 950

转载 union和struct的大小计算

规则:1,对于union,对齐的大小是最大的基本元素的对齐大小;对象的大小必须是该基本元素大小的整数倍;2,对于struct,对齐的大小也是最大的基本元素的对齐大小,对象的大小需要考虑元素的对齐,并且需要是最大基本元素的整数倍;同时有#pragma pack修饰的情况,关于struct请详细参考另外一个帖子。3,这里所说的struct和union的对齐,是指其作为其他复杂对象中的元素的

2013-06-18 11:02:41 610

转载 对日软件外包项目问题探讨

【导读】软件外包已经成为全球IT行业的大趋势,当前软件发包方主要来自欧美和日本。对日软件外包相对技术难度不高,但是质量要求相当苛刻。软件外包已经成为全球IT行业的大趋势,当前软件发包方主要来自欧美和日本。我国对日软件外包具备很多竞争优势,中国各地如北京、上海、大连、西安、杭州、合肥等城市的对日软件外包正在迅速发展,并逐渐形成产业规模,中小规模的软件企业纷纷建立对日软件出口联盟。

2013-06-17 13:29:46 1506

转载 软件外包项目管理经验谈

软件外包是一个非常大的市场,目前在国内有很多软件公司从事软件项目外包行业,因为印度在此方面的成功,一度软件蓝领的需求成为热门话题。本人从事过外包软件项目开发和管理接近4年,和国内的知名企业如华为和中兴都有项目合作的经验,就这方面来谈谈软件外包项目的管理,以为大家借鉴。  外包项目分为人员外包和项目外包,也称ON-SITE和OFF-SITE,以风险来算,人员外包的风险很小,但是利润也很少,基本很

2013-06-17 13:25:42 1181

转载 C++中Overload、Overwrite及Override的区别

Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。Override(覆盖):是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相

2013-06-14 14:24:08 677

原创 printf和sprintf注意点

■问题:在要求用户输入文件保存的路径后,source中如果有类似sprintf(buff,   入力値)的处理时,一旦入力値中包含”%”, 那么buff中的期望值就和实际值可能不一样。例如用户输入这样的路径: C:\Temp%sfile 那么 sprintf(path,  “C:\Temp%sfile”); path期望值: C:\Temp%sfile Path实际

2013-06-09 09:26:23 946

转载 vs调试技巧(二)

一、错误代码不需要GetLastError()之后格式化成数字写Log,然后用Error Lookup查询;或者直接调用API查询对应语言版本的错误信息。在监视窗口中写下$err,hr即可看到详细的错误描述信息,跟Error Lookup一样的效果。二、查看消息Message类型Windows的消息是UINT格式,在调试的时候如果直接输入变量,看到的也就是一个数值。如果在变量名

2013-05-27 14:49:29 648

转载 C++笔试题(二)

转自:http://blog.csdn.net/gelu1231/article/details/4206722 1.new、 delete 、 malloc 、 free关系delete 会调用对象的析构函数,和 new对应。new调用构造函数,free只释放内存,和malloc对应。 malloc与 free 是 C++/C 语言的标准库函数,

2013-05-17 15:36:45 1209

原创 C语言基本变量长度

C语言的基本数据类型有以下几个:int  整型char 字符型float 单精度浮点型double 双精度浮点型另外,在基本数据类型基础上附加一些限定词,得到扩充的数据类型。short,long可以应用到整,unsigned可以应用到整型和字符型。short int(或short)短整型long int(或long)长整型unsigned int 无符号整型un

2013-05-17 13:14:22 4323

转载 C++ 笔试题(一)

C++/MFC 试题  一.填空题 (26 分 ) 1 . WIN32 平台下, sizeof(short) = __2__, sizeof(int) = __4__, sizeof(long) = __4__。 (3分 )2 .请给出如下程序的结果 (2 分 ) int a = 3; int b = a a = __3__ , b = __24__。

2013-05-15 16:56:25 824 1

原创 C++ 关键字 typename

"typename"是一个C++程序设计语言中的关键字。当用于泛型编程(模板编程)时是另一术语"class"的同义词。[这个关键字用于指出模板声明(或定义)中的非独立名称(dependent names)是类型名,而非变量名。以下是对于泛型编程中typename两种迥然不同的用法的解释。 1:class关键字的同义词,用在模板定义里,标明其后的模板参数是类型参数。这是一项C++的泛型编

2013-05-15 15:24:11 839

转载 C++模板

1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.

2013-05-15 11:26:14 381

原创 MessageBox添加帮助按钮

int SsUMessageBox(HWND hWnd, // オーナーウィンドウのハンドル UINT uAppType, // アプリタイプ UINT uMsgId, // メッセージID UINT uMsgType, // メッセージボックスのタイプ) MSGBOXCALLBACK MsgBoxCallback, // CallBack U

2013-04-23 13:53:59 1307

转载 Visual C++线程同步技术剖析:临界区,时间,信号量,互斥量

转载的,图片加载不了,可惜找不到原文了~使线程同步  在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。  如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。

2013-04-16 10:09:25 526

转载 函数的调用规则(__cdecl,__stdcall,__fastcall,__pascal) .

关于函数的调用规则(调用约定),大多数时候是不需要了解的,但是如果需要跨语言的编程,比如VC写的dll要delphi调用,则需要了解。        microsoft的vc默认的是__cdecl方式,而windows API则是__stdcall,如果用vc开发dll给其他语言用,则应该指定__stdcall方式。堆栈由谁清除这个很重要,如果是要写汇编函数给C调用,一定要小心堆栈的清除工作,

2013-04-11 09:48:17 443

转载 CBitmap,HBitmap,Bitmap区别及联系

加载一位图,可以使用LoadImage:HANDLE LoadImage(HINSTANCE hinst,LPCTSTR lpszName,UINT uType,int cxDesired,int CyDesired,UINT fuLoad);LoadImage可以用来加载位图,图标和光标。加载时可以通过指定cxDesired和cyDesired来规定加载图的映射到内存的大小。cx

2013-04-08 19:16:28 549

原创 使用GDI位图

GDI位图只是另一个GDI对象,例如笔或者字体。你必须先创建一个位图,然后将它选入设备环境。当你完成改对象的操作之后,必须解除对它的选中,并删除它。尽管如此,仍有一些问题,原因是显示器的“位图”实际上就是显示器表面映像,打印机设备的“位图”是打印页面本身。因此不能将位图选入显示设备环境或者打印机设备环境。必须使用CDC::CreateCompatibleDC 函数为位图创建一个特殊的内存设备环

2013-04-07 22:14:48 1282

转载 逻辑坐标与设备坐标

建立一个合适的坐标系可以为我们的绘图带来很大的方便。下面介绍一下如何在VC中建立我们想要的坐标系。  一 设备坐标和逻辑坐标  设备坐标(Device Coordinate)又称为物理坐标(Physical Coordinate),是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置,是以像素为单位来表示的,设备

2013-04-07 20:48:03 1551

原创 GetWindowRect,GetClientRect,ClientToScreen 和ScreenToClient

一个窗体分为两部分:系统区和客户区象标题和菜单,边框之类的是系统区,由系统来控制,剩下的就是客户区。GetWindowRect()    该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。   GetClientRect()   获取窗口客户区的坐标。客户区坐标指定客户区的左上角和右下角。由于客户区坐标是相对窗口客户区的左上角而言的,因此左上角坐标

2013-04-07 10:12:10 638

原创 BMP文件格式

BMP文件格式:http://www.kk.iij4u.or.jp/~kondo/bmp/BMP文件是一种像素文件,它保存了一幅图象中所有的像素。这种文件格式可以保存单色位图、16色或256色索引模式像素图、24位真彩色图象,每种模式种单一像素的大小分别为1/8字节,1/2字节,1字节和3字节。目前最常见的是256色BMP和24位色BMP。这种文件格式还定义了像素保存的几种方法,包括不压缩、R

2013-04-02 11:11:05 548

转载 C/C++ static , extern关键字

static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性。extern "C"是使C++能够调用C写作的库文件的一个手段,如果要对编译器提示使用C的方式来处理函数的话,那么就要使用extern "C"来说明。一.C语言中的static关键字在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。(1)修饰局部变量一般情

2013-04-02 09:46:19 562

转载 TCHAR char wchar_t 的区别

有的人爱用strcpy等标准ANSI函数,有的人爱用_tXXXX函数,有必要把来龙去脉搞清楚。 为了搞清这些函数,就必须理请几种字符类型的写法。char就不用说了,先说一些wchar_t。wchar_t是Unicode字符的数据类型,它实际定义在里:typedef unsigned short wchar_t;   不能使用类似strcpy这样的ANSI C字符串函数来处理wchar_

2013-03-30 11:41:31 656

转载 VC中_T("")与L区别

VC中_T("")与L区别区别解释一说这个话题,肯定涉及MS的字符集,先看MS对_T(其中_TEXT(")与_T("")一样)的定义:#define _T(x) __T(x) #define _TEXT(x) __T(x)  如果定义了_UNICODE标识符,那么一个称作__T的宏就定义如下:#define __T(x) L##x

2013-03-30 11:25:43 580

转载 sizeof strlen length 之区别

sizeof strlen lengthsizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。length只是针对字符串而言的 标准c里没有length这个函数 只有在C++中的CString类中才有length这个函数 。strlen是C的函数。strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(

2013-03-30 10:35:19 1470

转载 C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free .

内存分配方式 内存分配方式有三种: [1] 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量, static 变量。 [2] 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的内存容量有限。[3] 从堆上分配,

2013-03-22 11:30:29 727

转载 关于GlobalAlloc,GlobalLock,GlobalUnLock .

调用GlobalAlloc函数分配一块内存,该函数会返回分配的内存句柄。 调用GlobalLock函数锁定内存块,该函数接受一个内存句柄作为参数,然后返回一个指向被锁定的内存块的指针。 您可以用该指针来读写内存。 调用GlobalUnlock函数来解锁先前被锁定的内存,该函数使得指向内存块的指针无效。 调用GlobalFree函数来释放内存块。您必须传给该函数一个内存句柄。Glob

2013-03-22 11:23:19 622

原创 BMP字节对齐

BMP字节对齐最近做的プロトタイプ涉及到黑白,灰色,彩色BMP转PDF的问题。其中,BMP读取显示时要4位字节对齐原因和算法总结如下原因1、    内存分配单位是32位的,即4字节2、    位图中每行象素的数据是连续的,而下一行不能和上一行共一个分配单元(4字节),所以每行象素的数据长度必须是4字节的倍数算法具体代码如下。返回值为一个扫描行所占的实际字节数。int

2013-03-22 11:05:26 1732

转载 VS调试技巧之----Attach to Process .

attach to process: 用于和进程绑定,方便调试。你有没有这样的经历:按F5开始调试时,程序需要好长时间才能启动,比如可能需要加载比较大的文件或资源,这时候你可能需要等很长时间,而下次调试时又不得不等很长时间以待程序启动。其实这浪费了很多的时间。那有没有比较好的解决方法呢,有,就是VS提供的Attach to Process 的功能。你只要把待调试的程序启动,然后把程序和源码at

2013-03-22 10:57:58 981

空空如也

空空如也

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

TA关注的人

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