自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Neo的专栏

Stay Hungry,Stay Foolish

  • 博客(21)
  • 资源 (8)
  • 收藏
  • 关注

转载 C语言 ## __VA_ARGS__ 宏

在GNU C中,宏可以接受可变数目的参数,就象函数一样,例如: ?12#define pr_debug(fmt,arg...) \ printk(KERN_DEBUG fmt, ##arg)用可变参数宏(variadic macros)传递可变参数表 你可能很熟悉在函数中

2013-05-31 09:59:34 785

转载 C++基础之面向对象编程思想(一)

本文介绍的是以C++程序语言为基础的面向对象的编程思想。希望对你有帮助,一起来看吧!AD:2013大数据全球技术峰会课程PPT下载我们都知道,C++中最重要的概念——类,了解了类之后,已经可以开始做些编程方面比较高级的应用——设计程序,而不再只是将算法变成代码。要说明如何设计程序,有必要先了解何谓编程思想。建议大家阅读这一系列的文章,供大家参考。

2013-05-31 08:59:32 2045

转载 COM服务器的伪异步技术及其实现

摘要:COM组件技术在Windows操作系统中发挥了极其重要的作用,但标准COM组件技术在实时操作性上不尽完善。作为补充可以用COM连接点技术和多线程技术来构造一种伪异步技术, 完成某些前者不能完成的任务。本文详细描述了其实现原理,并根据技术细节提供了作者的解决方案。  关键词: COM;异步调用;连接点;接口;STA; MTA  1. COM异步技术 与普通同步执行的COM服务器不同

2013-05-30 11:16:29 821

转载 CComPtr和CComQIPtr

CComPtr和CComQIPtr    CComPtr和CComQIPtr是智能接口指针类,它们在销毁的时候,不需要手动去释放接口指针,在赋值的时候,也不需要手动的AddRef,在出现异常的时候,会自动处理异常,而不需要额外的异常处理代码。     CComPtr和CComQIPtr的不同的地方:CComPtr只能创建固定的特定的接口指针实例。而CComQIPtr不但实现

2013-05-28 14:13:26 1343

转载 MFC&ATL&STL比较

大量的程序员都尽可能多地利用现有的代码。程序员经常购买那些包装成库的代码,而且许多成功的公司正是靠生产真正优秀的代码库而发展起来的,例如rogue wave software (www.roguewave.com)。当c语言流行时,代码库就是函数库。例如,可以购买一个数学库,该库含有完成微积分和代数运算的函数。通常,可以在程序代码中使用一个包含文件来指定一个函数库,可以静态或动态地链接这个函数

2013-05-27 20:45:35 1011

转载 无法解析的外部符号 "wchar_t * __stdcall _com_util::ConvertStringToBSTR(char const *)"的解决办法

使用VS 2008(带sp1)编译一个ATL控件工程,出现下面一个编译错误:“error LNK2019: 无法解析的外部符号 "wchar_t * __stdcall_com_util::ConvertStringToBSTR(char const *)"(?ConvertStringToBSTR@_com_util@@YGPA_WPBD@Z),该符号在函数 "public: __thi

2013-05-27 11:29:21 2793

转载 修饰函数和函数返回值的const的差别

const用于修饰函数时,一般是const修饰类的成员函数(函数定义体),表示在函数体中成员变量不能改变;其函数形式为:int ff(void)const;const修饰函数的返回值,用于返回常量;如const int ff(); //返回的是常量,所以必须这么调用 const int a=ff();又如给"指针传递"的函数返回值加const,则返回值不能被直接修改,且该返回值只能

2013-05-23 09:42:57 847

转载 C/C++回调函数

精妙比喻:回调函数就像您随身带的BP机:告诉别人号码,在它有事情时Call您        回调用于层间协作,上层将本层函数安装在下层,这个函数就是回调,而下层在一定条件下触发回调,例如作为一个驱动,是一个底层,他在收到一个数据时,除了完成本层的处理工作外,还将进行回调,将这个数据交给上层应用层来做进一步处理,这在分层的数据通信中很普遍。        其实回调和API非常接近

2013-05-22 13:55:40 886

转载 判断点在多边形内的多种写法

再经典不过的算法了:// 功能:判断点是否在多边形内 // 方法:求解通过该点的水平线与多边形各边的交点 // 结论:单边交点为奇数,成立!//参数: // POINT p 指定的某个点 // LPPOINT ptPolygon 多边形的各个顶点坐标(首末点可以不一致) // int nCount 多边形定点的个数BOOL PtInPolygon (

2013-05-21 10:56:22 1783

转载 stdafx介绍

简介  名称的英文全称为:Standard Application Framework Extensions  所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。  预编译头文件通过编译stdafx

2013-05-19 21:30:31 794

原创 关于C++ const 的总结

声明:本文大多摘自网友的智慧言辞,整理所得!Julius 更名NeoC++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。一、Const作用   如下表所示:

2013-05-17 22:02:12 794

翻译 解开 Windows 下的临界区中的代码死锁

本文假定您熟悉 Win32、C++ 和多线程处理。下载本文的代码:CriticalSections.exe (415KB)摘要临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。 本文深入研究临界区的原理,以揭示在查找死锁和确认性能问

2013-05-16 10:38:34 892

原创 比喻

1.线程和进程的关系一、如果我们单纯把资金作为资源的话,我们可以看出,公司是所有资金的拥有者,恰如进程是所有资源的所有者一样。员工要开展工作,需要和公司申请经费,而线程若想正确执行,也需要有足够的资源(最常见的就是内存)。在资本市场上,公司也可以算是最小运作单元了吧,就像我们认为进程是系统分配内存的最小单元一样。 二、一个公司的业务开展,至少需要一个员工的工作,这一情况,恰好类

2013-05-15 18:41:57 933

转载 临界区的LockCount为何小于-1

某日,在浙大国家实验室,与老方和小崔调试监控死锁问题。机柜里一溜架装服务器上出现死锁问题。用WinDbg看,发现其中导致死锁的临界区LockCount值是小于-1的数!! 多次重现该问题,发现LockCount经常是负的两三百。我等本着不十分科学严谨,但又有一点科学严谨的态度,装模作样查了下资料,显示如下: LockCount代表什么含义

2013-05-14 11:42:23 1408

转载 用VC进行COM编程所必须掌握的理论知识

l(作为一个初学者,觉得本文挺好,推荐给大家)这篇文章是给初学者看的,尽量写得比较通俗易懂,并且尽量避免编程细节。完全是根据我自己的学习体会写的,其中若有技术上的错误之处,请大家多多指正。 一、为什么要用COM  软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点

2013-05-13 19:06:34 858

转载 COM多线程原理与应用

COM多线程原理与应用目录:COM多线程原理与应用目录:前言:套间:套间的定义:套间的分类:套间的进入和退出:对象的同步:组件对象的同步:COM对象线程模型:进程内对象线程模型的种类:ATL对多线程的支持:对象引用的保护:成员变量的保护:COM+导致的变化:上下文概述:上下文对象:调用对象: 前言:COM多线程

2013-05-08 17:39:49 832

转载 简单的程序诠释C++ STL swap

相信大家看到swap这个词都一定不会感到陌生,甚至会有这样想法:这不就是简单的元素交换嘛。的确,swap交换函数是仅次于Hello word这样老得不能老的词,然而,泛型算法东风,这个小小的玩意儿却在C++ STL中散发着无穷的魅力。本文不仅详细地阐述STL泛型算法swap,并借助泛型算法这股东风,展现STL容器中swap成员函数的神奇魅力。注意哦,泛型算法swap和容器中的swap成员函数,这是

2013-05-08 12:56:58 1038

转载 STL中map用法详解

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

2013-05-08 11:32:55 605

转载 DEBUG_NEW和THIS_FILE

C++ 的一个 比较晦涩难懂的特点是你可以重载 new 操作符,并且你甚至可以给它附加参数。通常,操作符 new 只接受拟分配对象的大小:        void* operator new(size_t nAlloc)         {            return malloc(nAlloc);        }  但你也可以随心所欲附加参数来重载 new 操作符,

2013-05-04 18:18:30 778

转载 【Windows核心编程学习笔记】用户模式下的线程同步之二---关键段(critical section)

关键段是一小段代码,它在执行之前需要独占对一些共享资源的访问权。这种方式可以让多行代码以“原子方式”(指的是除了当前线程之外,没有其他任何线程会同时访问该资源)来对资源进行操控。当然,系统仍然可以暂停当前线程去调度其他线程。但是,在当前线程离开关键段之前,系统不会调度任何想要访问统一资源的其他线程的。首先看一段代码:[cpp] view plainc

2013-05-03 15:06:56 887

转载 windows消息机制的有趣发现

最近琢磨windows的消息机制,发现一些有趣的地方,可能是对的,也可能是错的,分享出来让大家评判评判。1:每个线程都有消息队列不仅仅是有窗口的线程,没有窗口的线程也有消息队列!编写一个win32控制台程序,代码如下:[cpp] view plaincopy#include    void main()  {

2013-05-02 11:06:26 878

黑客与画家

黑客 画家 pdf 讲述黑客与画家的异同点,观点新颖,很有独到见解,适合扩充知识

2013-05-11

solymr小品文系列

solymr小品文系列 C++ 技术小品文 目前主攻方向:C/C++ 、面向对象、泛型编程

2013-04-19

IDL精髓.pdf

IDL精髓.pdf COM idl C++

2013-04-14

COM技术内幕

COM技术内幕 pdf 好书 C++ 微软组件对象模型

2013-04-10

VC++之MFC类库中文手册.chm

VC++ MFC chm 中文版 继承类图

2013-01-11

画出时钟的时针和分针

输入当前时间,画出模拟时钟的时针和分针 C++ VS2005 MFC

2012-09-11

全角半角 转换器

全角 半角 转换器 C C++ 无需安装 小巧易用

2012-03-10

自动关闭计算机小工具

C C++ MFC 简单实用 小巧 自动关机 定时

2012-03-05

空空如也

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

TA关注的人

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