自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aa211314的专栏

仁者无情

  • 博客(25)
  • 资源 (10)
  • 收藏
  • 关注

原创 VC++ 线程池

 服务器程序利用线程技术响应客户请求已经司空见惯,可能您认为这样做效率已经很高,但您有没有想过优化一下使用线程的方法。该文章将向您介绍服务器程序如何利用线程池来优化性能并提供一个简单的线程池实现。线程池的技术背景在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提

2008-02-28 16:27:00 8689 2

原创 C++ 快速内存分配

我们知道,C++中当我们用new在堆中创建一个对象时,会发生两件事情。首先调用operator new分配一定大小的内存空间,然后在此空间上调用构造函数以形成对象。而operator  new涉及到寻找合适内存的算法,往往,这个算法是比较费时间的,所以,如果我们的程序中需要不断的产生和释放某类型的对象,那么operator  new所累计起来的时间可能就会成为阻碍程序性能提高的一个重要因素了。看来

2007-10-01 14:10:00 1796

原创 垃圾回收器

引言在前文,我们引入了GC Allocator(具备垃圾回收能力的Allocator),并提供了一个实作:AutoFreeAlloc(详细内容参见《C++内存管理变革(2):最袖珍的垃圾回收器 - AutoFreeAlloc》)。但是,如前所述,AutoFreeAlloc是有其特定的适用环境的(它对内存管理的环境进行了简化,这种简化环境是常见的。详细参阅《C++内存管理变革(3):另类内存

2008-03-31 23:36:00 846

原创 简单实用的线程管理类

在开发多线程程序时,常常碰到线程管理的问题。当有多种线程的时候,为了控制每个线程,编程工作也变得复杂。事实上,我们对线程的控制大多是相似的,所以把这些控制抽象出来,形成一个可复用的程序模块,将能大大提高开发效率和代码质量。首先我们对线程的使用目的进行分析和归纳。一般来说,有如下几种:1)              独立线程。执行一项在后台完成的工作,工作频率很低,线程的生命期里只完成一项任

2008-03-31 23:32:00 1905

原创 TCP P2P 穿越NAT的方法

Internet的迅速发展以及IPv4 地址数量的限制使得网络地址翻译(NAT,Network Address Trans2lation)设备得到广泛应用。NAT设备允许处于同一NAT后的多台主机共享一个公网(本文将处于同一NAT后的网络称为私网,处于NAT前的网络称为公网) IP 地址。一个私网IP 地址通过NAT设备与公网的其他主机通信。公网和私网IP地址域,如下图所示:广域网与私网示意图一般

2008-02-28 16:33:00 1206

原创 VC++数据库连接池

对于连接的管理可使用空闲池。即把已经创建但尚未分配出去的连接按创建时间存放到一个空闲池中。每当用户请求一个连接时,系统首先检查空闲池内有没有空闲连接。如果有就把建立时间最长(通过容器的顺序存放实现)的那个连接分配给他(实际是先做连接是否有效的判断,如果可用就分配给用户,如不可用就把这个连接从空闲池删掉,重新检测空闲池是否还有连接);如果没有则检查当前所开连接池是否达到连接池所允许的最大连接数(ma

2008-02-28 16:13:00 6073 22

原创 VC++调用带参数的存储过程

最近由于工作之需,要利用VC进行一些高级的数据库操作,如执行存储过程等。遍寻网络资源发现好使的不多(经常#30XX错误,大部分应该是COM的VARIANT数据类型所致,其实有个讨巧的方法,请看下文),在自己的实验下小有所得。记下学习笔记以备参考:1 进行ADO编程的必备步骤:引入msado15.dll #import "c:/program files/common files/syste

2008-02-28 16:11:00 6401 1

原创 内存池的简单试验(C++)

这是试验性的程序, 虽然算法实现简弱, 当在编译器优化后实验结果,性能比用全局new delete的内存管理好了很多,我这里有考虑到多线程看来在大量使用内存分配的程序,用内存池是能够显著提高性能的;有时间我会改进算法,有高手看到, 请指点一二, 我是非专业的, 算法方面很弱;还有数组的内存分配遇到了一些问题;以下数组的内存分配的一般模式void * operator new[](size_t si

2008-02-28 16:08:00 1008

原创 数据库备份与还原处理

利用T-SQL语句,实现数据库的备份与还原的功能体现了SQL Server中的四个知识点: 1.   获取SQL Server服务器上的默认目录 2.   备份SQL语句的使用 3.   恢复SQL语句的使用,同时考虑了强制恢复时关闭其他用户进程的处理 4.   作业创建SQL语句的使用  /*1.--得到数据库的文件目录  @dbname 指定要取得目录的数据库名  

2008-02-28 16:05:00 929

原创 VC++实现非窗口类中使用定时器的方法

/////////////////////////////////////////// MyTimer.h: interface for the CMyTimer class.#if !defined(AFX_MYTIMER_H__D97674D1_B221_49CD_9637_4CBA8C3180CE__INCLUDED_)#define AFX_MYTIMER_H__D97674D1_B221

2008-01-11 09:56:00 3626 1

原创 VC中CShockwaveFlash的常用函数

Play()            播放动画  StopPlay()            停止动画  IsPlaying()            动画是否正在播放(true,false)  GotoFrame(frame_number)            跳转到某帧(frame_number+1)  TotalFrames()            获取动画总帧数  CurrentFram

2008-01-11 09:54:00 4661 1

原创 界面美化

QQ软件主界面的ListCtrl 是可以说非常经典了,一个字漂亮! 这个ListCtrl的所包含的信息之丰富,更是让我们这些软件工程师望Q兴叹! 今天,我将和大家一起来解决这个难题,写一个属于自已的CMyListCtrl。                                                          一、实现MyListCtrl要完成的任务及实现

2007-12-26 16:50:00 1875

原创 让你的软件界面更漂亮 (VC)

            一、漂亮界面实现的原理  用图象元素自绘窗口标题样栏,边框,系统按钮(最大化、最小化、关闭按钮)还有按窗口中的控件。图象元素可以是位图,也可用绘图函数实现。如果用位图实现,那需要美工的支持。如果绘图函数实现需要你超强审美观和对VC绘图函数熟练掌握!。二、VC绘图技术介绍        CDC* pDisplayMemDC=new CDC;    

2007-12-26 16:45:00 2337

原创 STL中的map用法详解

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在处理一对一数据时,在编程上提供快速通道。介绍一下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后面会见识到有序的好处。

2007-10-05 13:15:00 680

原创 API函数大全 (C++)

1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次

2007-10-05 12:56:00 2178

原创 十万个为什么(VC++)

1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。Example:TCHAR

2007-10-05 12:54:00 1584

原创 什么叫真正的C++高手

自从计算机问世以来,程序设计就成了令人羡慕的职业,程序员在受人宠爱之后容易发展成为毛病特多却常能自我臭美的群体。如今在Internet上流传的“真正”的程序员据说是这样的:(1)    真正的程序员没有进度表,只有讨好领导的马屁精才有进度表,真正的程序员会让领导提心吊胆。(2)    真正的程序员不写使用说明书,用户应当自己去猜想程序的功能。(3)    真正的程序员几乎不写代码的

2007-10-01 15:22:00 1785 1

原创 正确使用内存

对于初学者来说,内存是个神秘的空间。程序的绝大部分错误,也是在于内存的使用不当造成的,而且这些错误有些都是隐藏很深的。所以,如何掌握内存的使用,通晓系统对内存的管理手段,将是软件成功的一个非常关键的因素。       首先我们要了解内存的分配方式。一般来说,内存的分配方式有三种:1.从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,

2007-10-01 14:51:00 774

原创 Visual C++开发工具与调试技巧整理

自己总是用VC平台来开发东西,但是有时候总是出这样那样的问题,呵呵,总是需要上网查资料来解决,在这里把自己用到上网查的一些技巧摘录如下,希望对大家有用,省去大家再去搜索的烦恼。1.如何在Release状态下进行调试Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选D

2007-10-01 14:45:00 693

原创 C和C++编程和学习文档

1  :指针变量名称以p为首字符,这是程序员通常在定义指针时的一个习惯2  :har * p;    (int *)p 把p强制转换为int型                          3.1 :指针的问题:指针应用时最好给予定义(初始化)这样可以保证指针的指向是程序员自己能够把握的。3.2 :指针的越界,这恐怕是最难查出的吧!                         

2007-10-01 14:26:00 2346

原创 UDP穿透之NAT类型分析

 NAT,即网络地址转换,是指在一个网络内部,根据需要可以随意自定义的IP地址,而不需要经过申请。而当内部的计算机要与外部internet网络进行通讯时,NAT设备(比如:路由器)负责将其内部的IP地址转换为合法的IP地址并进行通信。从功能上来说,NAT可以分为:传统NAT,双向NAT(Bi-Directional NAT),两次NAT(Twice NAT),多宿主NAT(Multihom

2007-10-01 14:23:00 1691 3

原创 STL使用入门( Using STL)

作者:Zoran M. Todorovic原文:Using STL.翻译:Winter STL使用入门( Using STL) 0 前面的话(Winter) 1 介绍 2 规则 Rule 1: Rule 2 R

2007-10-01 14:19:00 3226

原创 用C++封装Socket库

这两天又看了几眼Socket编程,我老是没长性,总是东看看西看看。还老爱挑毛病,钻牛角尖,真是不可救药了。这不,又开始看Socket不顺眼了。当时是看了一个朋友给我的一段socket raw编程的代码,有一段看的我很恶心。如下:if((ErrorCode=WSAStartup(MAKEWORD(2,1),&wsaData))!=0){         printf("WSAStartup fail

2007-10-01 14:16:00 3689 1

原创 C++事件(Event)机制的实现

用C++实现事件机制我以前写过一个小例子,但不是很完善,比如Event只能接受全局函数作为handler,类成员方法不可以,还有一个Event只能添加一个handler等……最近我的一个程序刚好要用到Event机制,所以我就抽了些时间,重新实现了一下。这个版本应该说是比较完善的,基本上和C#中的Event一样了。点击这里下载源代码。要使用Event机制主要用到两个模板类:一个是Delegate

2007-10-01 14:13:00 6566 4

原创 VC++常用数据类型及其操作详解

目录一.              VC常用数据类型列表二.              常用数据类型转化2.1数学类型变量与字符串相互转换2.2 CString及string,char *与其他数据类型的转换和操作●CString,string,char*的综合比较●数学类型与CString相互转化●CString与char*相互转换举例●CString 与 BST

2007-10-01 14:09:00 711

Redis-x64-4.0.14.zip

微软维护的开源版目前停止更新了,最新的还是2016年7月发布的3.2.100版本;在issues里找到了其他人开发的redis4的windows版本

2019-12-16

面向对象软件架构设计

第一单元:软件生命周期与软件架构介绍 2 第二单元:技术架构视图─面向对象程序设计原则与模式 59 用GRASP模式指导设计 62 领域模型 96 面向对象设计的基本原则 132 第三单元:用UML辅助系统分析与设计 177 UML简介及常见疑难问题辨析 178 借鉴RUP的UML建模与分析 213 第四单元:设计模式与软件设计思想 267 设计模式 268 常用的软件架构风格及适用情况分析 391 SOA 及分层架构设计 443 第五单元:架构设计实践

2012-05-02

Testdirector规范

适合于初学、中级以及想规范化缺陷管理工具的

2010-08-02

测试用例编写规范---很不错的东西

知识面广,内容丰富 适合初学者、测试用例编写者

2010-07-12

ARM嵌入式常用模块与综合系统设计实例精讲

全书针对目前通用流行的ARM嵌入式处理器,通过实例精讲的形式,详细介绍了ARM嵌入式常用模块与综合应用系统设计的方法与技巧。   全书共分3篇26章,第一篇为基础知识篇,简要介绍了ARM 处理器及系统结构、ARM编程基础、ARM开发环境与调试系统;第二篇为ARM嵌入式常用模块设计实例篇,通过19个典型模块设计实例,详细介绍了ARM嵌入式的各种开发技术和使用技巧。这些模块实例基础、实用,易学易懂,全部调试通过,几乎涵盖了所有的ARM开发技术,为读者提供了一个难得的学习途径;第三篇为综合应用系统设计实例篇,通过4个综合系统实例,对前面的ARM常用模块进行了综合应用设计。经过此篇学习,读者将快速提高ARM综合系统设计的能力,步入高级工程师的行列。   本书盘书结合,光盘中附有所有实例的硬件原理图和程序代码,读者稍加修改,便可应用于自己的工作或者自己设计的课题中,物超所值。本书适合计算机、自动化、电子及硬件等相关专业的大学生,以及从事ARM开发的科研人员使用。

2010-05-17

嵌入式常用模块与综合系统设计实例精讲(源码)

全书针对目前通用流行的ARM嵌入式处理器,通过实例精讲的形式,详细介绍了ARM嵌入式常用模块与综合应用系统设计的方法与技巧。   全书共分3篇26章,第一篇为基础知识篇,简要介绍了ARM 处理器及系统结构、ARM编程基础、ARM开发环境与调试系统;第二篇为ARM嵌入式常用模块设计实例篇,通过19个典型模块设计实例,详细介绍了ARM嵌入式的各种开发技术和使用技巧。这些模块实例基础、实用,易学易懂,全部调试通过,几乎涵盖了所有的ARM开发技术,为读者提供了一个难得的学习途径;第三篇为综合应用系统设计实例篇,通过4个综合系统实例,对前面的ARM常用模块进行了综合应用设计。经过此篇学习,读者将快速提高ARM综合系统设计的能力,步入高级工程师的行列。   本书盘书结合,光盘中附有所有实例的硬件原理图和程序代码,读者稍加修改,便可应用于自己的工作或者自己设计的课题中,物超所值。本书适合计算机、自动化、电子及硬件等相关专业的大学生,以及从事ARM开发的科研人员使用。

2010-05-17

ARM嵌入式系统实验教程(二)

ARM嵌入式系统 ARM嵌入式系统 ARM嵌入式系统

2009-10-22

从MCU最小系统的设计谈电子设计竞赛赛前准备

wdsffdsffffffffffffffffffff

2009-10-22

课程设计之VC++------------------

多个关键字请用空格分隔,最多填写5个。点击右侧Tag快速添加 多个关键字请用空格分隔,最多填写5个。点击右侧Tag快速添加 多个关键字请用空格分隔,最多填写5个。点击右侧Tag快速添加

2008-12-12

完成端口类

完成端口类<br>本源码及资源由虾客下载(www.xkxz.com)收集整理后提供下载

2008-01-04

空空如也

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

TA关注的人

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