自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一步一步

没有热忱,世间便无进步。

  • 博客(114)
  • 资源 (4)
  • 论坛 (43)
  • 收藏
  • 关注

原创 一种多线程安全的单例模式

template class StaticSingletonT {public:static T* SafeInstance() { static T* s_instance_ptr = NULL; if (!s_instance_ptr) { if (atomic_compare_exchange(&s_state, OBJECT_

2015-04-27 14:59:11 960

原创 boost之lexical_cast使用

安全从数字字符串到整数的转换:#include template bool safe_lexical_cast(const char* str, T& ret_val) { try { ret_val = boost::lexical_cast(str); return true; } catch (boost::bad_lexical_c

2015-04-27 14:55:20 1466

原创 HTTP无状态协议和session原理(access_token原理)

无状态协议是指协议对务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 Http协议不像建立了socket连接的两个终端,双方是可以互相通信的,http的客户端只能通过请求服务器来获取相关内容或文件信息,具体内容可以通过我的另一篇文章了解。http协议这种特性有优点也有缺点,优

2014-08-27 08:52:17 26869 3

原创 spinlock和mutex对比

spinlock: 自旋锁,

2014-08-26 08:36:17 3195

原创 利用二级指针删除单向链表节点

// testPPointer.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include typedef struct tagNode{ struct tagNode* m_next; int m_nVal;}Node, *PNode;// 通过二级指针方式

2013-10-28 23:17:58 1721

原创 GetTempFileNameW详解

UINTWINAPIGetTempFileNameW(    __in LPCWSTR lpPathName,    __in LPCWSTR lpPrefixString,    __in UINT uUnique,    __out_ecount(MAX_PATH) LPWSTR lpTempFileName    );uUnique 传0,或者非0

2012-12-13 22:40:10 2065

转载 谈一个Kernel32当中的ANSI到Unicode转换的问题

众所周知,Windows的几乎所有带有字符串参数的API都是有W和A两个版本,分别对应于Unicode和ANSI版本。同时,Windows内部是使用Unicode的,因此所有的A版本的API函数都是实际上调用了一次ANSI到Unicode的字符集转换之后,再调用Unicode版本的函数。你真的清楚这中间的这一步转换吗?普通的工程师确实不需要了解太深刻,但是我们是做安全软件的,安全软件的一个

2012-11-16 09:24:27 760

原创 二进制和文本方式打开文件的区别

二进制文件处理时会碰到的问题我们使用处理二进制文件时,需要用如下方法binfile=open(filepath,'rb')    读二进制文件binfile=open(filepath,'wb')    写二进制文件那么和binfile=open(filepath,'r')的结果到底有何不同呢?不同之处有两个地方:第一,使用'r'的时候如果碰到'0x1A',就会视为文件结束

2012-11-11 16:54:15 4240 1

原创 验证pe文件数字签名

// exam5.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include "mscat.h"#pragma comment (lib, "WinTrust.lib")BOOL CheckFileTrust(LPCTSTR lpFileName);BOOL C

2012-11-10 15:00:57 4530 1

转载 Loki库使用(1)

C++设计模式类库 Loki介绍与用法Loki是由Andrei编写的一个与《Modern C++ Design》(C++设计新思维)一书配套发行的C++代码库。它不仅把C++模板的功能发挥到了极致,而且把类似设计模式这样思想层面的东西通过库来提供。本篇文章介绍如何利用Loki来轻松地实现一些设计模式。由于Loki使用了大量牛X到爆的模板技巧,对编译器的要求是很苛刻的,官

2012-11-07 16:44:44 40325 2

原创 ollydbg使用初步(1)

1.反汇编面板窗口双击列可以完成相应动作。2.信息面板窗口动态跟踪会提示信息。3.数据面板窗口查看内存数据。4.寄存器面板窗口显示寄存器值。5.堆栈面板窗口显示堆栈数据。

2012-11-06 21:58:06 1048

转载 c++异常精解

目录abort 异常终止程序异常捕获机制(try-catch)  调用 abort 函数终止程序调用 abort() 函数来终止发现异常的程序. abort() 函数将直接终止程序而不是首先返回到主函数(在 VC 下的入口函数 main[控制台] 或 WinMain[窗体程序])中例子:View Code 1 #inclu

2012-11-02 14:47:52 1326 1

原创 VC中try catch

在编译命令行中加入 /EHa 的参数。这样VC编译器不会把try catch模块给优化掉

2012-11-02 14:34:18 1681

原创 windbg查句柄信息

1.!handle 列出所有句柄2.!handle handleID f检查句柄信息3.!htrace handleID检查操作句柄的历史记录4.!cs csID列出CriticalSection的详细信息5.~~[owner thread id]把owner thread id转换成线程号

2012-10-18 09:48:14 2897

原创 windbg dump分析之分析命令之二

1.lmvm 检查模块加载信息deferred表示目前并没有加载该模块symbol2.!sym noisy 自动寻找symbol的时候给出详细信息3..reload /f msvcrt 让调试器加载制定模块symbolps:默认情况下调试器不会加载所有的symbol4.lmf 列出当前进程加载的所有模块5.r 查看修改寄存器值e 修改地址

2012-10-15 09:39:25 1463

原创 vc关键字

1.凡是VC中带两个下划线的关键字,比方__asm都是VC独有的

2012-09-29 16:41:47 933

转载 c++内存布局(二)

C++ 对象的内存布局(下) 陈皓http://blog.csdn.net/haoel   重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。  其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4字节),一个是字符(1字节),

2012-07-09 18:54:27 829

转载 c++内存布局(一)

C++ 对象的内存布局(上) 陈皓http://blog.csdn.net/haoel  前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非常简单的,主要是为了说

2012-07-09 18:52:07 879

原创 windbg dump分析之分析命令

1. 查看目标系统vertarget 是version命令的一个功能子集vertarget显示调试目标所在的操作系统版本version则会显示调试环境的其它信息eg:0:000> versionWindows XP Version 2600 (Service Pack 3) MP (4 procs) Free x86 compatibleProduct: WinNt

2012-06-30 09:13:54 8074

原创 windbg dump分析入门之符号相关

1.符号路径基本语法:SRV* 【cache】*toppath例如:Microsoft公有符号存储地址:http://msdl.microsoft.com/download/symbols设置符号路径就是:SRV*c:\mysymbols*http://msdl.microsoft.com/download/symbolsc:\mysymbols作为符号缓存以加快符号的访问速度

2012-06-30 08:33:32 7035

原创 在Windows上通过ctypes遍历进程

import ctypesimport sysTH32CS_SNAPPROCESS = 0x00000002class PROCESSENTRY32(ctypes.Structure): _fields_ = [("dwSize", ctypes.c_ulong), ("cntUsage", ctypes.c_ulong),

2012-06-16 20:13:21 2761

原创 Python SMTP协议发送QQ邮件

from email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartimport smtplib, datetimemsg = MIMEMultipart()att = MIMEText(open('d:\\m

2012-06-07 20:24:16 5683 1

原创 Python编写FTP下载程序

import ftplibimport osimport socketimport sysHOST = '127.0.0.1'DIRN = 'd:\\G'FILE = 'xue.jpg'USER_NAME = 'liyong'PWD = '123456'def DownloadFile(file_name): try: f =

2012-06-07 20:22:28 5182

原创 boost库之shared_ptr

// shared_ptr_Exam.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include using namespace std;#include "boost/smart_ptr.hpp"using namespace boost;

2012-05-05 17:24:28 1225

原创 boost库之scoped_array

// scoped_array_Exam.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "boost/smart_ptr.hpp"using namespace boost;int _tmain(int argc, _TCHAR* argv[]){

2012-05-05 16:55:59 751

原创 boost库之scoped_ptr

scoped:范围的意思// scoped_ptr_Exam.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include using namespace std;#include "boost/smart_ptr.hpp"using namespa

2012-05-05 16:26:57 878

原创 boost库之date

1.date// date_Exam.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #define BOOST_DATE_TIME_SOURCE#include "libs/date_time/src/gregorian/greg_names.hpp"#

2012-05-05 12:07:31 2855

原创 boost库之时间处理(timer,progress_timer, progress_display)

1.timer#include "stdafx.h"#include #include "boost/timer.hpp"//using namespace boost;int _tmain(int argc, _TCHAR* argv[]){ boost::timer t; std::cout << t.elapsed_max() << std::endl; //可度量的

2012-05-04 20:35:38 2210

原创 超时功能的MessageBox对话框

前天突然在windbg上uf USER32!MessageBoxW,发现了MessageBoxTimeoutW这个API,看着名字大家马上就知道什么回事了。为什么对这个有如此敏感呢,是因为有一次面试经历,问了这个问题,怎么实现具有超时功能的MessageBox,我那时的回答是:在一个线程中弹对话框,然后等待此线程(现在想想很汗)#include "stdafx.h"#include #include int _tmain(int argc, _TCHAR* argv[]){

2011-05-14 18:30:00 2345

原创 python编码规范(部分)

查询结果[1]: pay.jxworld.com.my ==>> 113.23.142.49 ==>> 1897369137 ==>> 马来西亚 5b585240551348545a554c5d57Python代码规范(针对3.1.2版本)1.以4个空格作为缩进层次2.不要混用制表符和空格作为缩进层次3.每一行代码字符数不要超过79,否则积极使用行连接符'/'4.使用UTF-8编码关于importYes: import os import sysNo: import

2010-09-30 09:27:00 723

原创 MultiByteToWideChar使用(核心编程描述有误)

<br />char szBuffer[MAX_PATH] = "1234567"; int nLen = ::MultiByteToWideChar(CP_ACP, 0, szBuffer, 9,//这里传-1的话,函数自动计算字符个数(包括'/0'),结果nLen = 8,如果不传-1,传5,6,7,那么返回将是这些值 NULL, 0); wchar_t* pwszBuffer = (wchar_t*)::LocalAlloc(0, nLen * sizeo

2010-09-15 15:12:00 749

原创 python删除恼人的.svn

<br />#!/usr/bin/env pythonimport os;import shutil;import stat;import sys;def DelSubFile(svnPath): for item in os.listdir(svnPath): fp = os.path.join(svnPath, item); if os.path.isfile(fp): os.chmod(fp, stat.S_I

2010-08-30 12:55:00 974

原创 CppUnitLite UML图解及用法

<br />

2010-08-27 15:29:00 929

原创 你会用字符串操作函数吗?

<br />// stringTest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <Windows.h>#include <iostream>#include <strsafe.h>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ char szBuffer[10] = {

2010-08-03 18:29:00 824

原创 下载安装boost(基于vc)

<br />1.下载boost_1_43_0.zip(具体到哪里下载,自己搞定)<br />2.解压boost_1_43_0.zip(我的是直接解压放在F盘)<br />3.启动vc的Command Prompt编译生成bjam.exe<br />cmd到F:/boost_1_43_0/tools/jam/src下, 输入:<br />build.bat vc8(我的是vs2005自然就是vc8)<br />编译完成后可以在F:/boost_1_43_0/tools/jam/src/bin.ntx86目录下

2010-07-16 21:54:00 1567

原创 利用vector分配动态内存

<br />// vectorTest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <vector>using namespace std;int ComputeSize(void);//计算需要的内存大小int ComputeSize(void){ int nRet = 500; return nRet;}int _tmain(

2010-07-14 12:40:00 2756

原创 改变文本控件字体

<br />//取得库存gdi对象 ::GetObject((HFONT)::GetStockObject(DEFAULT_GUI_FONT), sizeof(m_lf), &m_lf); m_lf.lfUnderline = TRUE;//加下划线 m_lf.lfHeight = 32;//高度 m_lf.lfWidth = 12;//宽度 m_newFont.CreateFontIndirect(&m_lf);//创建字体对象 //设置静态文本控件的字体 GetDlgItem

2010-07-06 19:23:00 859

原创 注册表基本操作

<br />// regTest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <Windows.h>#include <iostream>/*对于注册表,我们可以理解为(类比):键对应于文件夹,键值对应于文件*/VOID ErrorShow(DWORD dwErrorCode);VOID ErrorShow(DWORD dwErrorCo

2010-07-03 21:57:00 622

原创 SDK关机

// test32.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include int _tmain(int argc, _TCHAR* argv[]){ HANDLE hToken = NULL; BOOL bResult = FALSE; TOKEN_PRIVILEGES tkp; bResult = ::OpenProcessToken(::GetCu

2010-06-24 15:11:00 868

原创 TemplateMethod模式

<br />// ProxyTest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>using namespace std;//定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤class AbstractClass{public:

2010-06-21 21:51:00 678

C++ SMTP协议发送邮件模块(支持身份验证)

解压后,添加所有文件到工程中,并且设置include路径即可 (这个也是我参考别人的东西,整理了一下,加入身份验证)

2010-09-17

C++沉思录.rar

C++经典之作,不容错过 C++设计技巧(代理类,句柄类,写时复制技术,引用计数等等

2008-12-25

cximage600_full.zip

开源的C++图像处理类,支持十几种格式的图片互转

2008-12-25

CListCtrl数据导入到Excel VC++封装

CListCtrl数据导入到Excel VC++封装

2008-09-24

一个星期过去,突然发觉,python其实比C系列难,好歹我自认为C系列掌握的不错

发表于 2010-09-16 最后回复 2019-10-12

上海勇进软件怎么样???

发表于 2010-08-22 最后回复 2018-12-19

质疑MFC中的线程局部存储代码

发表于 2012-11-18 最后回复 2013-05-30

质疑MFC中的线程局部存储代码

发表于 2012-11-18 最后回复 2012-12-25

windows系统下一个普通目录下可以建立多少个文件夹,也就是上限?求教。。。

发表于 2008-12-03 最后回复 2012-11-23

如何通过程序或注册表 还原Ctrl+滚轮改变的图标大小

发表于 2012-02-28 最后回复 2012-11-23

segment fault错误,高手进来,急急急

发表于 2009-08-27 最后回复 2012-11-23

MySql中新的数据库(与旧的相比,表的字段有所改变),怎样把旧数据库中的表数据导入到新建数据库表中呢?

发表于 2008-09-08 最后回复 2012-11-23

mysql c api 处理事务

发表于 2008-09-10 最后回复 2012-11-23

质疑MFC中的线程局部存储代码

发表于 2012-11-18 最后回复 2012-11-18

如何通过写程序或改注册表 还原Win7系统下因为Ctrl+滚轮方式改变的桌面图标大小

发表于 2012-02-28 最后回复 2012-02-28

如何通过写程序或改注册表 还原Win7系统下因为Ctrl+滚轮方式改变的桌面图标大小

发表于 2012-02-28 最后回复 2012-02-28

深圳万兴软件怎么样?好像是2010年最佳雇主,貌似不错,了解的兄弟姐妹进来给点信息啊

发表于 2011-02-27 最后回复 2011-09-23

多线程都是读访问一个std::vector(通过const迭代器),需要另加锁么?(详细研究过标准库的同学出来赐教)

发表于 2011-09-03 最后回复 2011-09-04

先调用GetModuleHandle在调用LoadLibrary,行的通?为什么这么做,有什么好处?

发表于 2011-05-23 最后回复 2011-07-29

关于深圳腾讯研究院,知道的了解的进来聊聊

发表于 2011-03-25 最后回复 2011-04-09

08届毕业深圳,广州中上等工资应该开价多少?

发表于 2011-02-25 最后回复 2011-03-04

广州翰信科技通信公司怎么样?

发表于 2011-02-22 最后回复 2011-02-22

c++方向,学习网络编程(一般是socket编程吧),请高手推荐几本书???

发表于 2009-01-19 最后回复 2011-01-08

PHP 调用COM问题 高手请进!!!

发表于 2009-11-18 最后回复 2010-09-16

《设计模式可复用面向对象软件的基础》,怎么看的似懂非懂?高手请进...

发表于 2008-12-31 最后回复 2010-07-12

高手请进,extern "C"在Dll中的使用问题

发表于 2008-12-30 最后回复 2010-04-28

php调用com,高手请进!!!

发表于 2009-11-18 最后回复 2009-11-18

深圳在职,毕业一年,轻松通过金山笔试面试,给我4.2-4.5K,去么?

发表于 2009-08-25 最后回复 2009-08-28

深圳在职,毕业一年,轻松通过金山笔试面试,给我4.2-4.5K,去么?

发表于 2009-08-25 最后回复 2009-08-27

深圳在职,毕业一年,轻松通过金山笔试面试,给我4.2-4.5K,去么?4分钟前

发表于 2009-08-26 最后回复 2009-08-26

深圳在职,毕业一年,轻松通过金山笔试面试,给我4.2-4.5K,去么?

发表于 2009-08-25 最后回复 2009-08-25

windows系统下一个普通目录下可以建立多少个文件夹,也就是上限?求教。。。

发表于 2008-12-03 最后回复 2009-01-19

快进来看看,自己测测你的C++功力到了哪一级

发表于 2008-12-11 最后回复 2008-12-19

关于数据库理论的学习,请教高手过来人指教

发表于 2008-11-15 最后回复 2008-12-11

高手请进:volatile关键字的困惑

发表于 2008-12-10 最后回复 2008-12-10

大师写的代码,大家来看看(开源项目CxImage中的demo程序)

发表于 2008-12-05 最后回复 2008-12-05

静态const变量的声明与定义

发表于 2008-11-10 最后回复 2008-11-11

mysql c api 处理事务 (急)

发表于 2008-09-10 最后回复 2008-10-21

(C api)mysql.h中的有rollback,有commit,但是怎样定义事物处理?在线等待高手回复

发表于 2008-09-09 最后回复 2008-10-21

我该怎么去学习数据库,高手指教,在线等待中。。。

发表于 2008-09-06 最后回复 2008-10-21

SQLConfigDataSource()的问题

发表于 2008-09-02 最后回复 2008-10-21

VC编程中怎样进行前期的设计,比如消息,各个控件显示数据之间的关系,数据的设置,不知道有没有什么好的方法

发表于 2008-09-01 最后回复 2008-10-21

CString是unicode编码时怎样转化成char *

发表于 2008-08-31 最后回复 2008-10-06

CString(unicode编码的) to char *

发表于 2008-08-31 最后回复 2008-09-29

空空如也

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

TA关注的人 TA的粉丝

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