编程语言 C++
文章平均质量分 63
泛泛杨舟
用blog记录自己成长虽然来得有些晚
展开
-
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 · 664 阅读 · 0 评论 -
线程中CreateEvent和SetEvent及WaitForSingleObject的用法-------wince里面的中断IST经常使用。
线程中CreateEvent和SetEvent及WaitForSingleObject的用法首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面.CreateEvent 函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信号,不发信号。 SetEvent/ResetEvent分别将EVENT置为这两种转载 2013-09-17 11:07:46 · 798 阅读 · 0 评论 -
数组,结构体初始化为{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 · 20758 阅读 · 0 评论 -
c++容器1(vector、list、deque)
http://blog.csdn.net/xfortius/article/details/7760490vector ,deque 和 list顺序性容器:向量 vector : 是一个线性顺序结构。相当于数组,但其大小可以不预先指定,并且自动扩展。它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数组。在创建一个vector 后,它会自动在内存中分配转载 2013-07-10 17:54:18 · 529 阅读 · 0 评论 -
c/c++里的 堆区 栈区 静态区 文字常量区 程序代码区
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 栈(stack):是自动分配变量,以及函数调用所使用的一些空间(所谓的局部变量),地址由高向低减少; 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由O转载 2013-06-18 15:45:53 · 954 阅读 · 0 评论 -
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 · 957 阅读 · 0 评论 -
C++中Overload、Overwrite及Override的区别
Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。Override(覆盖):是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相转载 2013-06-14 14:24:08 · 680 阅读 · 0 评论 -
sizeof strlen length 之区别
sizeof strlen lengthsizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。length只是针对字符串而言的 标准c里没有length这个函数 只有在C++中的CString类中才有length这个函数 。strlen是C的函数。strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(转载 2013-03-30 10:35:19 · 1481 阅读 · 0 评论 -
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 · 383 阅读 · 0 评论 -
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 · 1213 阅读 · 0 评论 -
C++ 关键字 typename
"typename"是一个C++程序设计语言中的关键字。当用于泛型编程(模板编程)时是另一术语"class"的同义词。[这个关键字用于指出模板声明(或定义)中的非独立名称(dependent names)是类型名,而非变量名。以下是对于泛型编程中typename两种迥然不同的用法的解释。 1:class关键字的同义词,用在模板定义里,标明其后的模板参数是类型参数。这是一项C++的泛型编原创 2013-05-15 15:24:11 · 863 阅读 · 0 评论 -
MessageBox添加帮助按钮
int SsUMessageBox(HWND hWnd, // オーナーウィンドウのハンドル UINT uAppType, // アプリタイプ UINT uMsgId, // メッセージID UINT uMsgType, // メッセージボックスのタイプ) MSGBOXCALLBACK MsgBoxCallback, // CallBack U原创 2013-04-23 13:53:59 · 1359 阅读 · 0 评论 -
函数的调用规则(__cdecl,__stdcall,__fastcall,__pascal) .
关于函数的调用规则(调用约定),大多数时候是不需要了解的,但是如果需要跨语言的编程,比如VC写的dll要delphi调用,则需要了解。 microsoft的vc默认的是__cdecl方式,而windows API则是__stdcall,如果用vc开发dll给其他语言用,则应该指定__stdcall方式。堆栈由谁清除这个很重要,如果是要写汇编函数给C调用,一定要小心堆栈的清除工作,转载 2013-04-11 09:48:17 · 444 阅读 · 0 评论 -
GetWindowRect,GetClientRect,ClientToScreen 和ScreenToClient
一个窗体分为两部分:系统区和客户区象标题和菜单,边框之类的是系统区,由系统来控制,剩下的就是客户区。GetWindowRect() 该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。 GetClientRect() 获取窗口客户区的坐标。客户区坐标指定客户区的左上角和右下角。由于客户区坐标是相对窗口客户区的左上角而言的,因此左上角坐标原创 2013-04-07 10:12:10 · 641 阅读 · 0 评论 -
C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free .
内存分配方式 内存分配方式有三种: [1] 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量, static 变量。 [2] 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的内存容量有限。[3] 从堆上分配,转载 2013-03-22 11:30:29 · 730 阅读 · 0 评论 -
关于GlobalAlloc,GlobalLock,GlobalUnLock .
调用GlobalAlloc函数分配一块内存,该函数会返回分配的内存句柄。 调用GlobalLock函数锁定内存块,该函数接受一个内存句柄作为参数,然后返回一个指向被锁定的内存块的指针。 您可以用该指针来读写内存。 调用GlobalUnlock函数来解锁先前被锁定的内存,该函数使得指向内存块的指针无效。 调用GlobalFree函数来释放内存块。您必须传给该函数一个内存句柄。Glob转载 2013-03-22 11:23:19 · 623 阅读 · 0 评论 -
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 · 550 阅读 · 0 评论 -
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 · 583 阅读 · 0 评论 -
CString类的转化(高级)及小技巧
CString类的转化(高级)通过阅读本文你可以学习如何有效地使用 CString。 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。 使用CString可以让你对字符串的操作更加直转载 2013-12-06 13:06:17 · 537 阅读 · 0 评论