- 博客(21)
- 资源 (23)
- 收藏
- 关注
原创 VC Debug与Release区别
Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用,我们使用的软件都是Release版本的。Debug 和 Release 并没有本质的
2011-08-30 11:14:20 15684 5
原创 VC 编译参数介绍
VC编译器的编译链接参数非常之多,对程序生成在细节上的控制也是非常强大的。要深入了解编译器参数是比较困难的,但作个初步认识还是不太难。编译参数可以在Project Setting中查看(Project菜单再选择Setting),如下图:这些参数究竟代表什么意思了?可以
2011-08-29 19:46:46 11757 1
原创 C++ 类的静态成员详细讲解
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来
2011-08-26 18:19:33 114502 22
原创 白话经典算法系列之七 堆与堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父
2011-08-22 20:04:13 439522 192
原创 C,C++中使用可变参数
可变参数即表示参数个数可以变化,可多可少,也表示参数的类型也可以变化,可以是int,double还可以是char*,类,结构体等等。可变参数是实现printf(),sprintf()等函数的关键之处,也可以用可变参数来对任意数量的数据进行求和,求平均值带来方便(不然就用数组或每种
2011-08-22 10:20:34 43060 8
原创 图解如何在VC6,VS2008中设置程序条件断点
VC6.0中按Ctrl+B可以弹出断点设置对话框点Condition,弹出Breakpoint Condition对话框中输入i==5||j==5。再点确定。再按F5运行程序,就会在设置的条件满足时停止。注意这句Break at ‘{, test.cpp,}.12’ when ‘i==5||j==5’。一般按F9设置的断点都没有后面这个语句称为指定行上无条件断点,这种可以称为指定行指定条件断点。另
2011-08-20 18:50:22 13590 5
原创 VC 利用DLL共享区间在进程间共享数据及进程间广播消息
在进程间共享数据有很多种方法,剪贴板,映射文件等都可以实现,这里介绍用DLL的共享区间在进程间共享数据,及共享数据有变化时及时的反馈给各相关进程。 一.在DLL中设置共享区间在DLL中是用数据段来实现共享区间的,有了这个共享区间,各进程可以方便的共享数据。1.先用
2011-08-19 16:27:53 11638 6
原创 C,C++宏中#与##的讲解
文中__FILE__与示例1的可以参见《使用ANSI C and Microsoft C++中常用的预定义宏》宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。如定义好#defi
2011-08-18 10:58:48 23254
原创 使用ANSI C and Microsoft C++中常用的预定义宏
__FILE__ 源文件的名称 如XXX.cpp__LINE__ 代码在源文件中是第几行 __DATE__ 源文件完成日期如Aug 17 2011__TIME__ 源文件完成时间如19:31:13__TIMESTAM
2011-08-17 21:35:23 8267
原创 VC 用发音函数Beep()播放简谱音乐
Win32 API中有个非常有意思的发音函数Beep(),可以用它在扬声器上播放简单的音调,如果按简谱来设置播放的内容,就可以播放一些简单的音乐了。 函数原型:BOOL WINAPI Beep( __in DWORD dwFreq, __
2011-08-15 15:30:27 12777 28
原创 VC 为程序创建快捷方式的详细讲解
有时候,为了方便用户使用我们编写的程序,需要在桌面,快速启动或程序组中创建程序的快捷方式。下面就介绍在VC下如何为程序创建快捷方式。一.得到桌面,快速启动或程序组的路径这里介绍二个win32 API函数来完成这个任务。第一个函数 获得系统特殊路径HRESULT S
2011-08-14 20:49:24 18222 16
原创 使用VC库函数中的快速排序函数
上一篇讲了快速排序的实现。但在很多场合,直接使用快速排序的库函数是很方便的。下面讲下VC中库函数qsort()的用法: 函数原型:void qsort(void *base,size_t num,size_t width, int (__cdecl *compare
2011-08-13 17:23:03 22317 8
原创 白话经典算法系列之六 快速排序 快速搞定
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快
2011-08-13 17:19:58 666330 453
原创 VC 如何使程序运行后自己删除自己
有时候,我们需要创建一个运行后能够自己删除自己的可执行程序即自删除程序。很明显如果一个进程通过直接调用DeleteFile()来删除自己是不可能的。必须另想办法,经过本人在网上参考很多资料后实际测试并集众家之所长,发现有二种方法效果比较好。现在将其封装成函数,这样使用将更加容易:方法1,调用BAT文件。//向指定文件写入文本。如果文件不存在就创建。int WriteTextToFile(cons
2011-08-12 16:08:01 20629 25
原创 白话经典算法系列之五 归并排序的实现
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。//将有序数组a[]和b[]合并到c[]中void MemeryArra
2011-08-11 11:01:05 362152 179
原创 VS2008下设置与VC6.0相同的字体
用VC6.0用久,对VS2008的文字大小和文字字体非常不习惯,因此决定改动下VS2008显示代码的文字字体。运行VS2008后在菜单项依次选择工具->选项->环境->字体和颜色。然后先在显示项中选择“纯文本”,再将“字体” 设为 Fixedsys。“大小” 设为 13这
2011-08-11 10:33:00 12609 12
原创 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。 设数组为a[0…n-1]。1. 初始时,数组全为无
2011-08-09 11:15:51 37081 37
原创 VC 利用SetWindowRgn实现程序窗口的圆角多角矩形
下面是实现程序窗口圆角多角矩形的三种方法,但效果都比较差。只是简单的将边角裁剪,从边框和标题栏上都可以看出来。不过可以通过这三个函数来学习下SetWindowRgn()及创建一个HRGN的不同方法。方法1void SetWindowEllipseFrame1(HWND hwnd, int nWidthEllipse, int nHeightEllipse){ HRGN hRgn; RE
2011-08-08 11:55:39 14716 4
原创 白话经典算法系列之三 希尔排序的实现
希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增
2011-08-08 11:41:40 226055 114
原创 白话经典算法系列之二 直接插入排序的三种实现
直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。
2011-08-06 19:27:17 154797 92
原创 白话经典算法系列之一 冒泡排序的三种实现
冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N
2011-08-06 19:20:30 196503 103
Base64系列第四篇 C/C++中使用Base64编码解码(从chromium库中抽取)
2013-10-19
VC++位图特效显示合集—交错、百叶窗、随机积木、飞入伸展
2013-03-24
进程通信之三 父进程传参数与子进程返回值
2013-03-21
Windows VC++ 调整进程当前目录为程序可执行文件所在目录
2013-03-21
WindowsVC++获取多核CPU各核使用率
2013-03-20
WindowsVC++获取CPU整体使用率
2013-03-20
MoreWindows微软实习生大礼包
2013-03-18
秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据
2013-03-13
Windows界面编程第八篇 listbox彩色显示隔行变色
2013-03-11
Windows界面编程第七篇 文件拖拽(文件拖放)
2013-03-11
电脑屏幕大小查看器(VC++带源码)
2013-03-03
MoreWindows界面编程第五篇 静态控件背景透明化
2013-01-06
MoreWindows界面编程第四篇 异形窗口2
2013-01-06
MoreWindows界面编程第三篇 异形窗口 1
2013-01-06
MoreWindows界面编程第一篇-位图背景与位图画刷
2012-12-31
OpenCV图像二值化
2012-12-05
VC,VS实用脚本--批量删除VC及VS临时文件
2012-11-27
MoreWindows白话经典算法之七大排序第2版(高清)
2012-09-10
MoreWindows白话经典算法之七大排序(高清版)
2012-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人