
C/C++
文章平均质量分 89
barenx
Art of Life
展开
-
Ms-0419 权限提升 C++的版本
// ms0419.cpp : 定义应用程序的入口点。Powered by barenx//#include "stdafx.h"#include "ms0419.h"#include "math.h"//#define MAX_LOADSTRING 100// 全局变量://HINSTANCE hInst; // 当前实例//TC原创 2008-03-30 10:37:00 · 932 阅读 · 0 评论 -
哈希表
哈希表是一个用于快速查找键值的数据结构序列,本文的哈希表的实现用于构造字符串键和字符串值的哈希序列。主要应用于对象的属性集合的存取。哈希表的结构有主散列和子序列构成,主散列是一线性数组,数组的大小为size,是一个素数,也是哈希函数的模基,数组序号[0...size]即哈希函数的值域,数组存储的是根连接件,由他维护着相同的哈希值(哈希函数值相同)的节点链表。子序列是存储节点的有序序列,是按各节转载 2008-03-31 22:21:00 · 1158 阅读 · 0 评论 -
链表排序(冒泡、归并)
排序的算法很多,这里说明连接件的冒泡排序和归并排序的实现,以升序为例。冒泡排序的原理:每一趟比较相邻两个连接件的数据部件,如果大值部件在前驱,则交换两个连接件的位置,使之成为后继,直至所有数据部件的值都按照升序排列。归并排序的原理:递归划分连接件链表,直至最小划分,然后升序合并划分的连接件链表,直至所有的划分都被合并。数据部件的比较通过调用回调函数的返回值来判断,回调函数有具体应用实现转载 2008-03-31 22:25:00 · 1355 阅读 · 2 评论 -
链表快速排序
快速排序也是一种分治的递归排序算法,它的原理是通过递归划分元素集合,在每一个集合内选取一个基点,通过比较基点元素和集合内其他元素的值进行位置调整,使得基点左边的元素值均不小于基点值,基点右边的元素值均不大于基点值。以下的实现中,先分配一个数组空间用于存储连接件集合,空间的大小是链表计数N加2,首位用于存放开始边界(LINK_FIRST),末位存放终止边界(LINK_LAST),数组[1…n]为具体转载 2008-03-31 22:28:00 · 1665 阅读 · 0 评论 -
VC++无闪烁刷屏技术
在实现绘图的过程中,显示的图形总是会闪烁,笔者曾经被这个问题折磨了好久,通过向高手请教,搜索资料,问题基本解决,现将文档整理出来以供大家参考.1.显示的图形为什么会闪烁 我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由OnPaint进行调用的。当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用OnPaint,而背景色往往与绘图内容反差转载 2008-03-31 22:43:00 · 1449 阅读 · 2 评论 -
C++内存管理详解
伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分配方式有三种:转载 2008-04-02 23:37:00 · 993 阅读 · 1 评论 -
Turbo C 函数中文说明
Turbo C 2.0 函数中文说明大全分类函数,所在函数库为ctype.hint isalpha(int ch) 若ch是字母(A-Z,a-z)返回非0值,否则返回0int isalnum(int ch) 若ch是字母(A-Z,a-z)或数字(0-9) 返回非0转载 2008-04-03 02:59:00 · 1687 阅读 · 0 评论 -
Memory Management Functions
Memory Management Functions (内存管理函数) Powered by barenx以下的函数用于内存管理 函数 描述原创 2008-04-03 02:40:00 · 1095 阅读 · 0 评论 -
图像特征提取
提取的是颜色直方图 纹理灰度共生矩阵 形状是Hu7先把代码在这里备份一个(代码风格挺舒服的)typedef struct RGB...{ double R,G,B;}RGB;typedef struct HSV...{ double H,S,V;}HSV;typedef struct HistogramVector...{int vector[72];}Hist原创 2008-04-01 10:31:00 · 1629 阅读 · 0 评论 -
C++字符串封装类
原文出处:CodeProject:The Complete Guide to C++ Strings, Part II collected by barenx 引言 因为C语言风格的字符串容易出错且不易管理,黑客们甚至利用可能存在的缓冲区溢出bug把C语言风格的字符串作为攻击目标,所以出现了很多字符串封装类。不幸的是,在某些场合下我们不知道该使用哪个字符串类,也不知道怎样把一个C风格的字符串转载 2008-04-01 09:12:00 · 1106 阅读 · 0 评论 -
内联汇编的快速CRC32
typedef unsigned __int64 QWORD;class CCrc32Static...{public: CCrc32Static()...{}; virtual ~CCrc32Static()...{}; static DWORD StringCrc32(LPCTSTR szString, DWORD &dwCrc32); static DWORD F原创 2008-03-30 10:50:00 · 2645 阅读 · 1 评论 -
多线程DiskBuffer预读
//Powered by barenx #include Windows.h>#include WinBase.h>#include "ErrCode.h"#define DefaultBufferCount 0x200 //512#define SingleBufferSize 0x40000 //256KBDWORD WINAPI ThreadBuffering(LP原创 2008-03-30 10:59:00 · 724 阅读 · 0 评论 -
汉字字索引
#include "../DiskBuf.h"#pragma once#ifndef IsHz #define IsHz(x) (((x)>=0x81 && (x)=0xAA && (x) #define HzCode(x) ((((x)&0x7F)>8))#endif#ifdef _DEBUG #define _IndexBuffer_Size 0x80#else #原创 2008-03-30 11:33:00 · 1479 阅读 · 0 评论 -
字索引压缩
//索引压缩、解压类 Powered by barenx#pragma onceclass IndexZip...{public: long *_lbuf; short *_sbuf; //all size def by byte unsigned long _intSize; unsigned long _lbuf_InUse; unsigned long原创 2008-03-30 11:40:00 · 628 阅读 · 0 评论 -
WinNT平台下直接读写磁盘扇区
引言 由于Windows 操作系统在很大程度上采取了访问安全保护机制(例如,在Windows操作系统下不能直接访问物理内存、不能使用各种DOS、BIOS中断等等),使得广大程序设计人员在长时间的开发过程中不知不觉地逐渐养成了这样的潜意识——在Windows操作系统下直接操纵硬件设备是极端困难和非常烦琐的,并将其看作Windows编程的一个禁区。尽管在大多数场合下这样的论断还算是贴切,但也并非对所转载 2008-03-31 20:32:00 · 1613 阅读 · 0 评论 -
用Visual C++开发数据库应用程序
用Visual C++开发数据库应用程序 1、 概述1、1 Visual C++开发数据库技术的特点Visual C++提供了多种多样的数据库访问技术——ODBC API、MFC ODBC、DAO、OLE DB、ADO等。这些技术各有自己的特点,它们提供了简单、灵活、访问速度快、可扩展性好的开发技术。简单性 Visual C++中提供了MFC类库、ATL模板类以及AppWizar原创 2008-03-31 22:00:00 · 2627 阅读 · 0 评论 -
集合的交、并、差的实现
【问题描述】 编制一个能演示执行集合的并、交和差运算的程序【基本要求】 (1)集合的元素限定为小写字母字符[ a......z ] (2 )演示程序以用户和计算机对话的方式执行【测试数据】【实现提示】 以有序链表表示集合【代码过程】 1。先定义 集合的数据类型 notes.h //notes.ht转载 2008-03-31 22:15:00 · 1791 阅读 · 0 评论 -
链表堆排序
堆(以下指最大堆):堆是一个完全二叉树,树中所有的非叶子节点的值均不小于其他孩子节点的值。堆排序的原理是利用堆的性质,当通过插入元素生成堆后,保证从堆顶摘除的元素(树的根节点)是堆中最大的元素。以下实现中,首先分配一个线性数组用于堆空间,数组的存放的是连接件的指针,数组的大小是连接件的计数加1,[1…n]存放堆中的连接件指针,[0]存放出入堆的连接件指针。在插入堆的过程中,首先在数组[原创 2008-03-31 22:30:00 · 3834 阅读 · 0 评论 -
.net 还未成熟,两三年内还会有变数,立此文为证
写给从老平台升级或是刚刚进来的菜菜中有选择恐惧症的童鞋。个人觉得ms.net的整合思路是一种大胆的创新,整合后的同一平台可以实现跨语言编译,sdk的内容也很丰富,可以用来弥补windows api和类库中的一些问题。但是从1.1开始就是个半成品导致后面3.5以后的版本内部实现有很大的变化,但也只是修补以前的不足,为保持连续性也难有作为。枚举几个设计问题吧:1. VB.net 和vb就没什么原创 2013-02-15 03:49:07 · 1290 阅读 · 3 评论