自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (6)
  • 收藏
  • 关注

原创 时间轮踢出超时用户

// TimingWheel.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #define SAFEDELETE(pointer) if(pointer){delete pointer;pointer=NULL;}interface IReadEvent{ virt

2014-04-18 18:46:40 859

原创 区分挂载的分区是否是移动硬盘并返回最大剩余空间的本地磁盘

#include "StdAfx.h"#include "disk_manager.h"#include #pragma warning( disable:4786 )#define MIN_FREE_DRIVE_SIZE (1024 * 1024 * 1024) //1Gdisk_manager::disk_manager(void){}disk_manager::

2014-03-13 16:42:13 927

原创 在exe中嵌入mp3音乐播放

自定义资源类型为MP3,并导入一个mp3的音乐的文件,得到资源标识IDR_MP31定义音乐播放模块(将IDR_MP31资源拷贝到用户临时目录,然后使用win的media control interface播放音乐)namespace music_play_module{ #pragma comment(lib, "Winmm.lib") class music_play {

2013-12-26 14:22:49 1739

转载 vs2010编译boost库

以下该篇文章属于转载,经测试该方法可用。第一步:到官网www.boost.org,下载boost最新版boost_1_47_0.zip第二步:将boost压缩包解压到C盘根目录下(在C盘操作简单,不会出错),目录为C:\BOOST_1_47_0,里面就是boost的源码和需要编译的文件及文档资料第三步:用打开一个cmd命令窗口,在C:\Program Files

2013-12-21 23:20:54 867

原创 封装windows线程

namespace posix_style_thread{#ifdef _WIN32#include #endif #include interface runnable { virtual unsigned int run() = 0; }; class thread { runnable * m_which_to_run; HANDLE m_hThrea

2013-12-21 20:24:58 615

转载 win32 字符串 utf8 unicode ansi相互转换

#include #include #define BUFF_SIZE 1024wchar_t * ANSIToUnicode( const char* str ){ int textlen ; wchar_t * result; textlen = MultiByteToWideChar( CP_ACP, 0, str,-1, NULL,0 );

2013-12-02 19:06:35 1520

原创 常用的一些代码

1.UTF8字符串->UNICODE字符串->ANSI字符串char szBuff[MAX_PATH];int iLen = MultiByteToWideChar( CP_UTF8 , 0 , szBuff , -1 , NULL , 0 );LPWSTR lpw = new WCHAR[iLen + 1];ZeroMemory( lpw , sizeof(WCHAR) * (iL

2013-11-07 14:49:25 1024

转载 VC编译错误:uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPA

1>uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMT.lib(new.obj) 中定义1>uafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delet

2013-11-07 14:20:19 1121

原创 WTL或MFC中ListView属性设置

ListView比ListBox有更强的表现力,想让ListView展示一个表格形状,我们需要对属性做下设置。然后用CListViewCtrl(WTL中的控件)和当前的资源绑定。CListViewCtrl::Attach(hWnd);listView.InsertColumn插入一行,类似这样m_wndListLeft.InsertColumn(0 , TEXT("监视WndPro

2013-10-25 17:36:49 1556

原创 格式化输出

"%I64d" 输出__int64NUMBERFMT设置可用于本地化输出数字 如 12,345.32"%p" 输出指针值

2013-10-21 14:30:48 637

转载 win32 api获取逻辑处理器信息

VOID ShowProcessors(){ PSYSTEM_LOGICAL_PROCESSOR_INFORMATION pBuffer = NULL; DWORD dwSize = 0; DWORD dwProcCoreCount = 0; BOOL bResult = GetLogicalProcessorInformation( pBuffer , &dwSize ); if

2013-10-21 11:51:13 1117

原创 IO完成端口

看了windows核心编程的IO完成端口的FileCopy程序,自己动手写了些,和书上代码差不多,把对IO完成端口句柄的封装和文件句柄的封装去掉了。// test2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include using namespace std;#define BUFFSIZE

2013-10-12 12:28:12 713

转载 c++ regex第三方库 当然现在c++11也支持regex

1. 最省事的是 ATL 里面自带的 CAtlRegExp。不过对 POSIX 标准支持很差,而且非常慢。2. boost,名气很大,但是过于臃肿,而且速度也不快。3. 以前微软研究院有个小组搞过一个greta,号称速度是boost的7倍多,不过03年以后就再也没更新了。在 VC8 以上版本编译需要稍作修改。兼容性不错。4. VBScript.RegExp。兼容性和速度都很好,尤其是速

2013-09-18 19:07:00 784

转载 win32 对栈进行安全的多线程操作

压栈 出栈等函数操作都是原子操作#include #include #include // Structure to be used for a list item; the first member is the // SLIST_ENTRY structure, and additional members are used for data.// Here, the da

2013-09-18 14:19:24 916

原创 旋转锁 SpinLock

// nnnn.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include #include using namespace std;LONG volatile g_bResourceInUse = FALSE;unsigned int __stdcall Func1(void *){ while ( Interlo

2013-09-18 11:42:06 845

原创 如何判断系统中是否安装了某种字体

int CALLBACK EnumFontFamExProc(//用于判断设备上下文是否拥有该字体的回调函数 ENUMLOGFONTEX *lpelfe, // logical-font data NEWTEXTMETRICEX *lpntme, // physical-font data DWORD FontType, // type of font LPAR

2013-09-17 17:52:58 2330

原创 vs调试技巧

有时候我们只有int * p = new int[n];我们需要查看p[0...n-1]所有元素究竟是啥。在QuickWatch窗口中写p,n就可以查看从p[0]到p[n-1]的所有元素

2013-09-12 15:21:45 519

原创 用于函数的与或非 函数

我们通常需要一些返回bool类型的函数,用于for_each类似的循环遍历操作,如果我们需要将一个vector中的mod3是1或者2的数查找出来,我们就会使用stl中的find_if,其中第三个参数会断言的表达式。使用c++11,和下面定义的And,Or,Not生成的仿函数可以轻松实现这一逻辑。bool is_mod_3_1(int i){return i%3 == 1;}bool is_mod_

2013-09-11 11:25:57 653

原创 将url分割,并判断每一部分是否符合一定的逻辑

#pragma onceextern "C" _declspec(dllexport) bool _SourceCanPlay_(char * str);// FilterJudgement.cpp : 定义 DLL 应用程序的导出函数。//#include "stdafx.h"#include "FilterJudgement.h"#include #includ

2013-09-10 17:09:24 982

原创 用户是否是用管理员权限运行本进程

#include #include #include using namespace std;BOOL GetProcessElevation(TOKEN_ELEVATION_TYPE * pElevationType , BOOL * pIsAdmin){ HANDLE hToken = NULL; DWORD dwSize; if ( !OpenProcessToken(

2013-09-10 10:11:37 801

原创 将字符串分割

void MySplitFunc(const string & sourceStr , const char * delimeter , vector & result_container){ result_container.empty(); if (sourceStr.length() == 0)return; int iLen = sourceStr.length(); char

2013-09-10 09:44:19 816

原创 notepad命令

notepad WORDPAD a.txt

2013-09-09 18:43:36 2754

原创 一个向量的最大子序列

已知一个向量a=[a1,a2,a3,...];求a[i...j]的和的最大值,并指出i和j。最好的时间复杂度是O(N)。用了lambda表达式,所以要用vs2012。function PrintArray = [](int * iItBegin , int * iItEnd){ for_each(iItBegin , iItEnd , [=](int a) { cout<<a

2013-09-03 18:54:58 687

原创 变位词程序

如果两个单词,他们的字母组成一样而字母位置有区别,那么就称这两个单词为变位词。如 pans 和 span , tops 和 stop。所有的变位词,对他们按字母顺序排序,得到相同的字符串(这个字符串成为该单词的签名)。把这个字符串作为这个单词的排序标准,排序完之后,相同签名的单词是变位词,将他们输出。sign.exe 读入每个单词,为每个单词生成签名#include #include

2013-08-30 16:42:52 959

原创 STL中的优先级队列(priority_queue)的自己实现priqueue

这篇文章主要介绍堆(最大堆和最小堆),以及一些系统对一些任务,比如线程,进程做调度的时候,所采用的优先级队列。主要思想就是,做一个最大堆(任务的权重最大的在顶端),把顶端的任务取出,重新做一个堆,处理该任务。// 优先级队列.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace st

2013-08-29 10:48:14 1028

原创 快速高斯模糊算法

由于项目需要,做一个高斯模糊的效果,实现毛玻璃的效果用于软件的界面上,当然算法的速度不能慢。GDI+1.1提供了这种特效,而且速度超快,处理1680*640的图像200ms左右,而且只有模糊半径R为[10,20]的时候,会出现峰值200ms左右,其余R都在200ms以下,甚至达到几十ms的速度。但是xp上的版本为GDI+1.0,不能直接使用GDI+ 的特效,不得已只能寻找开源实现。之后搜到了这个帖

2013-08-08 17:27:27 2700 5

原创 高斯模糊算法的设计与实现 GaussianBlur

算法部分,我参考了这篇博客 http://blog.csdn.net/maozefa/article/details/5576499namespace GaussianBlur{#define PI 3.14156 double * dArray = NULL; double dQ = 0; int iRadius = 0; void InitGaussianBlur(double Q

2013-08-02 10:42:55 1455

原创 从n中取出m个不重复的数

方法1:从n个中取m个,当前这个数被取出的概率为n/m,即if(rand() % n void genKnuth(unsigned int n , unsigned int m){ int remain = n; int unselect = m; for (int i = 0;i<n;++i) { if (rand()%remain < unselect) {

2013-07-29 16:47:51 1416

原创 用win32将彩色24位Bitmap灰度化

如果用GetPixel和SetPixel效率是很低的。有一种直接操纵内存中的Bitmap的方法。首先创建一个DIB,将原图Bitblt过去,然后对像素位进行操作,将HBITMAP返回,就可以直接使用。要注意原先的HBITMAP一定要从占有中释放,否则,外面的HDC将无法选中处理后的HBITMAP。HBITMAP Gray(HDC hDC, int x, int y, int iWidth, int

2013-07-23 14:57:55 1093

原创 VA_X在vs2012中的路径

C:\Users\qianyuxiang\AppData\Local\Microsoft\VisualStudio\11.0\Extensions\2sjvwn5g.gad\

2013-07-08 18:20:25 1423

转载 设置默认的调试器

问题描述:电脑上装了vs2008,vs2005,最近又装了VC6.0,导致了默认调试器的改变,在网上查找了解决方法,转载如下:关于设置默认调试器 收藏 注册表位置:HKEY_LOCAL_MACHINE_SOFTWARE_Microsoft_WindowsNT_CurrentVersion_AeDebug根据需要更改设置:vc6.0,根据安装路径而定:"C:/Progra

2013-05-16 13:34:17 867

原创 统计单词出现的频度

对于一些单词,如"aaa aa b aa bbb aaa",统计各个单词出现的频度。资料出处:编程珠饥 15.1方法一:用标准库的map。map m;对于string s;++m[s];即可统计字符串的个数,因为m[s],如果s存在,则自增,如果s不存在,则m[s]会创建,并初始化为int()即是0,并自增。由于map使用的平衡树,对n个单词,搜索的时间复杂度为n*log(n)

2013-05-13 22:29:08 1239 2

转载 C++输出中文字符串

C++输出中文字符1. cout场景1: 在源文件中定义 const char* str = "中文" 在 VC++ 编译器上,由于Windows环境用 GBK编码,所以字符串 "中文" 被保存为 GBK内码,编译器也把 str 指向一个包含有 GBK编码的只读内存空间.用 cout 输出 str 时, 由于中文Windows环境用GBK编码,所以把GBK编码的 s

2013-05-02 22:01:42 2053

原创 修改注册表的几个函数

RegOpenKeyExRegCreateKeyExRegSetValueExRegEnumKeyExRegDeleteKeyRegCloseKey

2013-04-25 16:21:32 827

原创 桌面右键弹出二级菜单

桌面右键弹出你添加的二级菜单。COM技术,ATL。这几天一直在做壁纸。翻了一些资料,终于做出来了。几个函数:SHGetSpecialFolderPath用于获取特殊文件夹路径SHGetPathFromIDList从id list获取路径 1.新建ATL工程,选支持MFC(因为要使用CString)和合并存根两个选项(因为不需要远程COM)。 2.右键工程,选添加

2013-04-25 16:14:45 1569 1

原创 win32 api遍历目录下所有文件

// TraversalADirectory.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "windows.h"#include void find(WCHAR * lpPath) { WCHAR szFind[MAX_PATH]; WCHAR szFile[MAX_PATH]; WIN32_FIND_D

2013-04-18 12:05:32 1395

转载 win32 API托盘程序

#include  #define IDR_PAUSE 12 #define IDR_START 13 /* #include  #pragma   comment(lib,   "shell32.lib")  */LPCTSTR szAppName = TEXT("服务程序"); LPCTSTR szWndName = TEXT("服务程序"); HMENU hmenu;//菜

2013-04-17 18:22:39 946

转载 win32 使用COM和API设置动态壁纸

大家都知道设置WINDOWS桌面墙纸的WIN32API是SystemParametersInfo,使用SPI_SETDESKWALLPAPER参数便能设置墙纸:         ::SystemParametersInfo(SPI_SETDESKWALLPAPER,0,"C:\\ABitmap.bmp",SPIF_SENDWININICHANGE|SPIF_UPDATEINIFIL

2013-04-17 16:39:42 4408

转载 【转】如何从HDC中获取位图信息

// 从DC中获取位图int GetBmpFromDc(){    HDC          hMemDC;    HBITMAP      hBmp;    BITMAP       bmp;    HANDLE       hOld;    HDC          hDC;    RECT         rcWnd;    // 获取子窗口的绘图区域

2013-04-15 18:36:22 3323

原创 绘制过程

HDC memMask = CreateCompatibleDC(hdc); //创建相容HDCHBITMAP hBitmap = CreateCompatibleBitmap(hdc,nWidth,nHeight); //创建相容位图句柄SelectObject(memMask,hBitmap); //选入Graphics graph(memMask); //开始绘制gr

2013-04-15 16:47:51 605

阿里技术总结

阿里十年技术总结。

2014-10-27

软件工程习题

软件工程的习题,包括一些图,比如state graph,petri 网,data flow graph,等等,很有借鉴意义

2011-12-07

软件工程概述

涵盖了软件工程的方方面面,为你工作产生更好的思想和更棒的设计

2011-10-29

数据库系统概念 习题答案(只有习题,没有实践题)

数据库系统概念 database system concept。是 习题部分,没有实践题部分

2011-10-25

并行程序,跨平台,OpenMp,使用方法

并行程序,跨平台,OpenMp,使用方法

2011-09-16

stl帮助文档,boost帮助文档,acm习题,计算程序运行时间工具

里面有stl的用法和实际代码,boost库的说明和代码,测试运行时间的一个工具

2011-09-16

空空如也

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

TA关注的人

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