自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wangluozhangleilei的专栏

过去的你造就了今天的我,一路有你真好!

  • 博客(53)
  • 资源 (14)
  • 收藏
  • 关注

转载 Windows系统编程之异步I/O和完成端口

Windows系统编程之异步I/O和完成端口【作者】北极星2003【来源】看雪技术论坛(bbs.pediy.com) 【时间】2006年7月1日一、  同步I/O和异步I/O在介绍这部分内容之前先来认识下“异步I/O”。  说起异步IO,很容易联想到同步I/O,对于同一个I/O对象句柄在同一时刻只允许一个I/O操作,其原理如下图所示:    显然,当内核

2012-06-30 21:07:42 693

转载 给字符数组赋值的方法

main() { char s[30]; strcpy(s, "Good News!"); /*给数组赋字符串*/ . . . } 上面程序在编译时, 遇到char s[30]这条语句时, 编译程序会在内存的某处留 出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为 Turbo C2.0的函数)时, 首先在目标文件的

2012-06-30 15:03:41 964

转载 Unicode下CString与char *转换

Unicode下CString与char *转换 在VisualC++.NET2005中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多字节字符集(MBCS:Multi-Byte Character Set),这样导致在VC6.0中非常简单实用的各类字符操作和函数在VS2005环境下运行时会报各种各样的错误,这里总结了在VisualC++.NET2005环境

2012-06-27 20:09:47 863

转载 CString详解以及CString转换成char*

CString 型和 char* 类型的相互转化1.CString 转化成 char* 之一:强制类型转换为 LPCTSTR;  这是一种略微硬性的转换,有关“正确”的做法,人们在认识上还存在许多混乱,正确的使用方法有很多,但错误的使用方法可能与正确的使用方法一样多。  我们首先要了解 CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数

2012-06-27 19:58:01 609

转载 使用双缓冲技术可轻松消除闪烁

当应用程序中使用多次GDI调用绘制到窗口中时,在窗口清除并被重新绘制时,会出现明显的闪烁。使用双缓冲技术可轻松消除闪烁。步骤如下:1、假设当前显示设备上下文为CDC * pDC;2、使用CDC对象创建可兼容设备上下文,      CDC memdc;      memdc.CreateCompatibleDC(pDC);3、使用CBitmap对象创建

2012-06-27 17:16:43 2959

转载 error C2065: “IDD_DIALOG1”

编译时提示error C2065: “IDD_DIALOG1” : 未声明的标识符错误的可能原因及解决方法如下: 1.出错文件中没有包含资源文件ID声明的resource.h文件。在出错文件中加入#include “resource.h”语句。2.工程附件包含目录的路径下没有resource.h文件。修改路径即可。3.工程所在文件夹下存在resource.h文件,但其中

2012-06-27 16:07:25 896

转载 学习红黑树

#ifndef RB_TREE_H#define RB_TREE_H  #include  #include#include  #include  using namespace std;templateclass RB_Tree{private:        RB_Tree(const RB_Tree& input){}          con

2012-06-21 09:21:07 3575

转载 给浮躁的软件业同仁

中国有很多小朋友,他们18,9岁或21,2岁,通过自学也写了不少代码,他们有的代码写的很漂亮,一些技术细节相当出众,也很有钻研精神,但是他们被一些错误的认识和观点左右,缺乏对系统,对程序的整体理解能力,这些人,一个网上的朋友说得很好,他们实际fans,压根没有资格称为程序员,但是据我所知,不少小网络公司的Cfans,拿着吓人的工资,做着吓人的项目,项目的结局通常也很吓人。  程序员基本素质:

2012-06-20 09:50:58 1142

转载 char*和CString转换

CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数据缓冲区的指针、一个是该缓冲中有效的字符记数(它是不可存取的,是位于 CString 地址之下的一个隐藏区域)以及一个缓冲区长度。 有效字符数的大小可以是从0到该缓冲最大长度值减1之间的任何数(因为字符串结尾有一个NULL字符)。字符记数和缓冲区长度被巧妙隐藏。(1) char*转换成CString

2012-06-18 21:16:30 602

转载 函数对比

用_t替换字符'w',比如 wcsncpy  to _tcsncpy(自适应函数)._tcsncpy_l 后缀  _l 不推荐使用的函数_tcsncpy_s 后缀  _s Security Enhancements in the CRT_tcsncpy_s_l 后缀  _s_l 同 _ssecurity enhancements宽字符处理函数函数与普

2012-06-18 15:37:45 1174

转载 VC读写ini文件的方法

ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。 一、向ini文件中写入信息的函数 1. 把信息写入系统的win.ini文件

2012-06-18 10:58:17 683

转载 用VC++制作QQ自动登陆软件

近日由于在华为培训,期间因为导师们忙得要紧,没那么多时间去教导我们,只是给我们看文档和代码,看完了,没事就想出这个来玩玩了。这里要先用SPY++来找到QQ登陆框的各个窗口标题或ID号。 原理:其实不难,只要找到QQ登陆框的号码输入和密码输入框,然后向其填数据就是了。这里填数据就是向其发送消息,模拟键盘 罢了。一、先是查看QQ登陆框是否开启,否则开启它。01.

2012-06-18 10:40:21 711

转载 int_ptr, long_ptr這些類型的含义

The *_PTR types were added to the Windows API in order to support Win64's 64bit addressing.Because 32bit APIs are used to store pointers to things using data types like DWORDS, it was necessar

2012-06-15 15:45:07 1882

原创 BYTE 和char的区别

其实BYTE就是 unsigned char,本质上BYTE和char两种类型都占一个字节。作为字符使用时,都是存储字符的ASCII码。比如:unsigned char uc='a';char c='a';printf("%d %d",uc,c);结果为: a a作为整数使用时,两种类型的取值范围就不同了。unsigned char 可取0至255,而char可取-128至+127。

2012-06-15 14:55:54 1135

转载 FTP协议浅析

FTP协议浅析Author:Leen今日需要用到FTP上传文件,就研读了一下FTP协议。虽然MFC中有 CFtpConnection 等类 使用起来很简易,但是不方便让我来理解FTP传输文件的过程,P传输解FT文件的过程,而且据说无法在WINCE上使用该类。FTP使用两个端口,21作为命令传输端口使用20一般作为主动传输时使用,被动传输时服务器开放端口,并将

2012-06-15 12:38:45 1180

转载 VC++多线程编程

留个纪念,不错的总结。十个例子清晰列举啦多线程编程的奥妙。 VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.一、问题的提出编写一个耗时的单线程程序:  新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为

2012-06-14 11:01:03 861

原创 Vs下 CCriticalSection::Lock 异常错误的发生

自己在vs下写了一个用 CCriticalSection::Lock来锁定对象的程序,发现给Lock设置dword参数时总会出现异常,后来查看了一下函数的文档,才恍然大悟!!!CCriticalSection 类包含成员函数锁定的线程可用于获得一个关键部分对象的所有权。有两个版本的锁定功能没有参数和其他采用 DWORD 参数之一。后一种版本的锁定文档状态 dword 值参数指定

2012-06-14 10:52:49 3003 1

转载 Visual C++线程同步技术剖析:临界区,时间,信号量,互斥量

使线程同步  在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。  如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全局变量,如果都

2012-06-12 14:45:57 1778

转载 mfc 利用HBITMAP 和CBITMAP 显示位图文件

利用双缓冲技术;源码:void showBMP(){CString   str;     CString   filter="Bitmap    Files(*.bmp)|*.bmp|Wmf   Files(*.wmf)|*.wmf||";   CFileDialog   dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVE

2012-06-12 11:17:23 1478

转载 入侵检测系统原理和实践

IDS:THEORY&PRACTICE 入侵检测系统:理论和实践 自从计算机以网络方式被连接开始,网络安全就成为一个重大问题,随着INTERNET的发展,安全系统的要求也与日俱增,其要求之一就是入侵检测系统。 本文旨在介绍几种常见的入侵检测系统及其理论和实践,需要指出的是,本文仅仅是一篇介绍性的文章,即使我推荐了许多可能的系统,在你相信其可靠性前,最好还是深入的研究一下他们。(NND,

2012-06-11 19:10:22 4472

原创 0xC0000005: 读取位置 0x00000020 时发生访问冲突

.exe 中的 0x。。。。处未处理的异常: 0xC0000005: 读取位置 0x00000020 时发生访问冲突错误在::PostMessage(AfxGetMainWnd()->m_hWnd,UM_XX,0,0);或::SendMessage(AfxGetMainWnd()->m_hWnd,UM_XX,0,0);怎么解决?经验证AfxGetMainWnd() 的返回值为

2012-06-11 18:55:53 10957 1

转载 mfc 小技巧之 获取对话框句柄 对话框指针

1、CWnd *pWnd   =  AfxGetMainWnd();获取主对话框指针;获取住对话狂句柄HWND hHwnd = pWnd->m_hWnd; 父窗口法:GetParent(); 在类的成员函数中如果使用与MFC类库相同名的SDK API 则需在函数名前添加::::作用将作用域改为全局。2、

2012-06-11 17:02:43 2210 1

转载 delete与delete[]的区别和使用方法

由new分配的一个数组空间,比如说 int *array=new int[50],当用delete释放这个空间时,用语句delete []array和delete array是否等价! C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],

2012-06-11 16:08:33 709

转载 SendMessage、PostMessage原理

SendMessage、PostMessage原理本文讲解SendMessage、PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级、中级、高级程序员进行理解,三个步骤分别为:1、SendMessage、PostMessage的运行机制。2、SendMessage、PostMessage的运行内幕。3、SendMessage、PostMessage的内部实

2012-06-11 15:41:26 620

转载 Invalidate以及Invalidate(false)和Invalidate(true)的区别

1.void Invalidate( BOOL bErase = TRUE );  该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘。这时Windows会在应用程序的消息队列中放置WM_PAINT消息。MFC为窗口类提供了WM_PAINT的消息处理函数OnPaint,OnPaint

2012-06-11 15:36:06 1534

转载 Invalidate 函数用法小结

Invalidate(false)不擦除背景,直接画 Invalidate(true)擦除背景InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效InvalidateRect函数中的参数TRUE表示系统会在你画之前用背景色将所选区域覆盖一次,默认背景色为白色,可以通过设置BRUSH来改变背景色。Invalidate()之后:(MFC的

2012-06-11 15:32:59 1070

转载 双缓冲队列,生产者消费者模式

#include "stdafx.h"#include #include template class CircularQueue{public: explicit CircularQueue(int capacity) : m_capacity(capacity), m_head(0), m_tail(0) { m_array = new T[m_c

2012-06-11 12:25:38 3580 1

转载 屏幕的双向缓冲

1、在窗口回调函数windowproc的WM_PAINT部分通过BeginPaint得到的HDC,就是前端缓冲的HDC。 2、为防止闪烁,在内在中另外创建一个区域,为后备缓冲区。称为双缓冲技术或页面切换技术。 3、实现步骤 1)首先创建一个与显示DC相兼容的内存设备描述表。 A)创建内存设备描述表 HDChdcBackBuffer=CreateCompatibleDC(NULL);//NULL

2012-06-11 12:24:34 736

转载 双缓冲区绘图操作的实现

在图形图象处理编程过程中,双缓冲是一种基本的技术。我们知道,如果窗体在响应WM_PAINT消息的时候要进行复杂的图形处理,那么窗体在重绘时由于过频的刷新而引起闪烁现象。解决这一问题的有效方法就是双缓冲技术。因为窗体在刷新时,总要有一个擦除原来图像的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了图像颜色的反差。当WM_PAINT的

2012-06-11 12:19:58 2881

转载 架构设计:生产者/消费者模式

[0]:概述今天打算来介绍一下“生产者/消费者模式”,这玩意儿在很多开发领域都能派上用场。由于该模式很重要,打算分几个帖子来介绍。今天这个帖子先来扫盲一把。如果你对这个模式已经比较了解,请跳过本扫盲帖,直接看下一个帖子(关于该模式的具体应用)。看到这里,可能有同学心中犯嘀咕了:在四人帮(GOF)的23种模式里面似乎没听说过这种嘛!其实GOF那经典的23种模式主要是基于OO的(从书名《Des

2012-06-11 11:32:57 524

转载 消息队列的设计与实现

简介消息驱动机制是 GUI 系统的基础,消息驱动的底层基础设施之一是消息队列, 它是整个 GUI 系统运转中枢,本文介绍了一个基于环形队列的消息队列实现方 法,给出了它的数据结构、主要操作流程和核心代码。环形队列环行队列是一种首尾相连的队列数据结构,遵循先进先出原则,如下图所示:ring buffer 示意图在环形队列

2012-06-11 11:25:53 803

转载 探索软件设计模式

软件设计模式来源于Christopher Alexander的建筑学模式和对象运动。根据Alexander的观点,模式就是一个对于特定的系统的通用解决方案本身的重复。对象运动关注于将现实世界模化为软件内部的关系。基于这两个原因,软件设计模式对于真实世界的物体而言同样应当是可以重复的。这篇文章呈现了现实的世界中的非软件的模式实例,这些模式来源于《设计模式-可复用面向对象软件的基础》(Design P

2012-06-11 11:17:21 1475

转载 对话框不用控件显示jpg图片

运行对话框没有出现图片,我是否需要在对话框上添加控件吗,光凭以下代码就能显示12.jpg图片吗,以下代码应该放哪呢,当然是放在OnPaint()函数里了CDC* pDC;   pDC=GetDC();   ShowPicture(pDC,"c:\\12.jpg",0,0,200,100);  C/C++ code #define  HIMETRIC_INC

2012-06-10 14:47:13 756

转载 关于大型项目中位移操作的妙用

最近几天一直在看公司的代码,给别人“擦屁股”真的很不爽,特别是给大牛级的人物擦,更累啊!花了一个多小时的时间,才知道他是如何读取XML配置文件的。下面是我自己回来写的一份“伪代码”,大致就是这个样子,具体我也记不清啦,有兴趣的看看!#define TABLE_COUNT 50#define FMT_BINARY        _T("2进制数")#define

2012-06-10 10:26:45 768

转载 基于委托机制的(目录)文件遍历

这个示例程序基本实现了Dir命令的行为,但是是使用了ObjectiveC的委托机制,思想是不错的,共享之需要的用到可以直接拿来用,因为委托机制真的很不错//////////////////////////////////////////////////////////////////////////  // 文件名:EnumFile.h  // 工程名:

2012-06-09 19:52:32 586

转载 TCP同步与异步及阻塞模式,多线程+阻塞模式,非阻塞模式简单介绍

首先我简单介绍一下同步TCP编程 与异步TCP编程。在服务端我们通常用一个TcpListener来监听一个IP和端口。客户端来一个请求的连接,在服务端可以用同步的方式来接收,也可以用异步的方式去接收。比如:TcpListene server = new TcpListener(IPAddress.Parse("127.0.0.1"), port);TcpClient tc

2012-06-08 10:29:02 2291

转载 编程新手导论

第二部分 导论,这一部分主要是关于编程的导论,(要懂得一点思想具备一点常识)《设计,编码,,与软工》(编程与思想)这一章解释了三种思想,原语,抽象,组合,,和软件开发的二个重要过程,,软件工程的相关概念,是编程入门的关键(要懂得一点领域内的数学)《数学与算法》(编程与数学)计算机整个就是架构在数学上的,跟计算机平台实现,算法设计,,架构密切相关,,真正要深入编程,,,对数学的学习是必须的,

2012-06-07 20:00:31 30757

转载 基于Socket的多线程和异步非阻塞模式编程

刚开始接触socket的编程的时候,遇到了很多的问题,费了很大劲搞懂。其实往往都是一些比较基本的知识,但是都是很重要的,只要对其熟练的掌握后,相信对基于网络的编程会有很大的提高,呵呵。      就拿基于C/S结构的例子来说,我们先看看服务器和客户端的流程(异常处理就省略了):        服务器:              //初始化

2012-06-07 19:55:30 1280

转载 多线程下的select网络程序结构

我一直坚信,如果不是处理大规模客户端连接,是不需要使用epoll和IOCP的。我倾向于简单的东西,所以我一直用着select。一直以来,我的网络程序结构就是在每一帧的开始select,有什么消息就处理一下,然后跑程序的主逻辑。我觉得这个结构挺好,单线程,简单、明了、优雅。不过最近有头儿告诉我,这个事情虽然可以,但是感觉上不太对头,网络组件的工作应该是独立的,不可以占用主逻辑的时间。好吧

2012-06-07 19:24:11 1513

转载 C++内存分配秘籍—new,malloc,GlobalAlloc详解

C++内存分配秘籍—new,malloc,GlobalAlloc详解                                                   _______只为因内存分配而无法入眠的程序员一。关于内存 1、内存分配方式  内存分配方式有三种:  (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都

2012-06-07 11:21:29 550

vb外部调用AutoCAD

提供了如何使用vb从外部对AutoCAD进行二次开发的说明,步骤详细,图示完整,并给出了一个小例子,值得下载

2014-08-13

Qt培训教程

Qt培训教程,让你快速入手,入门的极好资料,某培训公司的内部资料,人品保证,值得收藏

2012-08-29

WINDBG,Debugging Tools for Windows (x86)

Debugging Tools for Windows (x86),品质保证,值得下载

2012-08-29

无线充电方案

无线充电方案,资料有点短,但总结的比较好,可以当做参考

2012-08-29

CDC与HDC区别与转换

CDC与HDC区别与转换,资料详尽,值得下载

2012-08-29

汇编语言第二版答案-王爽

汇编语言第二版答案-王爽,答案详尽,附有详解步骤,品质保证,值得下载

2012-08-29

套接字select模式

套接字select模式C++实现,可用于一般工程或项目,可以运行

2012-08-29

屏幕差异传输

差异屏幕传输,只传变化部分,给出两种算法,基于分块和隔行扫描算法,另外还附带了屏幕抓取的方法

2012-08-29

VC++动态链接库(DLL)编程

网络流传最广的版本,篇幅不长但命中要害,品质保证,值得下载,高清晰度很难找到

2012-08-29

控件的自绘

控件的自绘不可多得的好资源,vs2005环境下控件自绘实现,步骤详尽

2012-08-29

几种排序算法的c++实现

几种排序算法的c++实现,保证都能运行,资料齐全,亲自调试

2012-08-29

二叉树的建立及遍历

1.编写程序任意输入二叉树的结点个数和结点值,构造一棵二叉树,采用三种递归遍历算法(前序、中序、后序)对这棵二叉树进行遍历并计算出二叉树的高度。 2 .编写程序生成下面所示的二叉树,并采用先序遍历的非递归算法对此二叉树进行遍历。 绝对精品,人格保证

2012-08-29

Wireshark教程-中文版

Wireshark教程-中文版,详细的很,人格保证绝对精品

2012-08-29

计算机网络实验(Wireshark)

了解网络协议实体间进行交互以及报文交换的情况。熟悉并掌握Wireshark的基本使用

2012-08-29

空空如也

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

TA关注的人

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