自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (9)
  • 收藏
  • 关注

原创 Boost::any分析

boost::any是一个能代表任何对象类型的对象,正如COM库的Variant变量类型,以及JAVA中的Object。不同的是,Variant的做法是包含所有可能类型的一个成员实现,浪费空间,而则boost::any借助于模板,没有空间浪费。 Variant的大致实现是:<!-- @page { margin: 2cm } P { margin-bottom: 0.

2010-01-31 14:27:00 4134 1

转载 万能转换器boost::lexical_cast

万能转换器boost::lexical_castboost::lexical_cast为数值之间的转换(conversion)提供了一揽子方案,比如:将一个字符串"123"转换成整数123,代码如下:string s = "123"; int a = lexical_cast(s); 这种方法非常简单,笔者强烈建议大家忘掉std诸多的函数,直接使用boost:: lexica

2010-01-31 14:21:00 2009

转载 万能类型boost::any

4.6  使用第三方库以上介绍了VisualC++对对象赋值、转换及字符编码转换的方法,实际上还有一些好用的第三方类库用以辅助C++程序员完成对象处理,比较著名的就是boost。本节简单介绍boost库中与数值相关的boost::any、boost::lexical_cast,以及有理数类boost::rational。4.6.1  万能类型boost::anyboos

2010-01-31 14:12:00 1421

原创 C++中extern “C”含义深层探索(在原作的基础上修改)

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE

2010-01-30 17:47:00 1021

原创 模板参数的编译时检查方法,利用typedef

很多情况下,你需要使用模板参数,但又不知道用户输入的模板参数是否正确,是否在范围内等,此时可以利用typedef的特性实现一种模板参数检查机制。template    //模板参数sz默认=0class templateClass{   typedef int testArray[ ( sz         ....}注:typedef的这个in

2010-01-28 11:39:00 1578

原创 nedmalloc

在阅读ogre源码的时候,发现了这个nedmalloc库,作者宣称其很快,非常快,虽然暂时还没有式,姑且认为正确吧,在浏览作者网站的时候,在他的biography里看到了这样一句话: There is a good percentage though exclusively about women troubles, mainly because I have no idea ho

2010-01-28 10:45:00 5560 1

转载 C/C++语言void及void指针深层探索

 1.概述  许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。  2.void的含义  void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。  void几乎只有“注释”和限制程序的作

2010-01-27 22:06:00 799

转载 C++内存管理基础之new & delete

内存管理的基础是要知道怎么获得以及释放内存,如你所知,在C/C++中就是调用new和delete操作。1. 分清operator new和new operator    全局函数operator new通常这样声明:void * operator new(size_t size);返回值类型是void*,表示其返回的是一个未经处理(raw)的指针,指向未初始化的

2010-01-27 21:18:00 841 1

转载 explicit构造函数

explicit作用:在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项: * explicit 关键字只能用于类内部的构造函数声明上。 * explicit 关键字作用于单个参数的构造函数。 * 在C++中,expli

2010-01-27 16:33:00 880

原创 swapchain极限

这两天想做一个类似unreal ed的content browser,尝试了很多方法,比如使用swapchain,viewport等技术手段,但是在实验中纷纷落马,最好还是锁定rendertarget,将模型等资源渲染到rendertarget,然后保存成img文件,在用mfc的listctrl来显示,当鼠标悬浮的时候,在设置swapchain来实现实时效果。 具体到swapchain,明

2010-01-27 09:54:00 1171

原创 TRACE()的用法总结

TRACE()宏一般是用在mfc中的,用于将调试信息输出到vs的输出窗口中(这是关键), 这在使用vs作为开发工具的时候,是非常方便的。 然而在开发一般c++程序时,却貌似无法获得这样的便利,其实只要经过几个步骤同样可以实现:一:#include        //此头文件包含ATLTRACE宏,而其实MFC做的就是#define TRACE ATLTRACE二:使用ATLTRAC

2010-01-26 16:44:00 2770

转载 STL中转换string大小写

http://www.devx.com/getHelpOn/Article/9702/1954?pf=true将一个字符串s转换为小写字符串int (*pf)(int)=tolower; transform(s.begin(), s.end(), s.begin(), pf); string str22 = "This

2010-01-26 15:28:00 3190

原创 Window Classes

Window Classes Window Classes Thistopic describes the types of window classes, how the system locatesthem, and the elements that define the default behavior of windows thatbelong to them

2010-01-26 10:07:00 992

转载 ZeroMemory、memset 和“={0}” 用于清零操作的区别

ZeroMemory、memset 和 “={0}” 三者用于清零操作的区别:首先是ZeroMemory和memset的区别:1、ZeroMemory是微软的SDK提供的,memset属于C  Run-time   Library提供的。因此ZeroMemory只能用于Windows系统,而memset还可用于其他系统。  2、ZeroMemory是一个宏,只是用于把一

2010-01-25 15:29:00 4000 1

转载 渲染到纹理(Render To Texture, RTT)详解

RTT是现在很多特效里面都会用到的一项很基本的技术,实现起来很简单,也很重要。但是让人不解的是网上搜索了半天只找到很少的文章说这个事儿,不知道是因为太简单还是因为这项技术已经出现很长时间了。总之我是在摸索这个东西的时候绕了不少弯子。现在把具体的实现方法写下来。渲染到纹理,顾名思义就是把渲染目标从帧缓存变成一个纹理。这样就可以把一个场景渲染后在进行Post Process,做出现

2010-01-19 22:26:00 1835

转载 Solmyr 的小品文系列之二:模棱两可的陷阱

“为什么会这样?!”,zero 一边喝水一边嘟囔着,恨恨的看着面前显示器上的代码,“为什么这么简单的一个调用也会出现编译错误 …… ”“这是因为你的设计太差!”噗!zero 被幽灵一样出现在背后的 Solmyr 吓了一大跳,一口水差点全喷出来。“咳!咳咳!S …… Solmyr ,你什么时候站在我背后的?”,zero 很费力的平息了咳嗽,同时努

2010-01-18 15:08:00 574

转载 Solmyr 的小品文系列之一:字符串放在哪里?

画外音:今天是个大晴天,温暖的阳光透过窗子照进了这间宽敞的办公室,办公室里三三两两的人们正在各自的计算机前努力工作,一切都显得那么的安静、祥和、有条不紊 ……“啊~!救命啊!Solmyr 你又用文件夹砸我!”“愚蠢者是应该受到惩罚的。”画外音: …… 呃,好吧,我得承认有点小小的例外。这里是一家软件公司,发出惨叫的这位是 zero ,新进的大学生;这

2010-01-18 14:57:00 464

转载 VS2008与QT4.6集成

VS2008与QT4.6集成2009年12月06日 下午 02:03台式机上装的VS2008和QT4.5,周末准备在笔记本上装上新发布的QT4.6,用以前的方法,结果还是出了很多错误,最后把整个周末都搭上了才装好,O(∩_∩)O~下面记录了集成VS和QT的步骤:(集合网络资料和自己安装过程的问题)1. 安装 VS2008    最好是完全安装。2.

2010-01-15 22:28:00 1615 1

转载 “Visual Studio 2005 命令提示”工具原理解析

观察“Visual Studio 2005 命令提示”的属性,发现运行“Visual Studio 2005 命令提示”即运行 %comspec% /k ""d:/Microsoft Visual Studio 8/VC/vcvarsall.bat"" x86其中 comspec即%SystemRoot%/system32/cmd.exe,故以上命令行即“以x86为参数,运行vcvarsa

2010-01-15 22:19:00 2204

转载 VC 2005 下如何编译安装并开发 QT 4.4.0 应用程序

Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,Qt支持所有的UNIX系统,包括Linux系统,还支持WinNT/Win2k、Windows 95/98平台。  本文将使用简单的几个步骤说明在VC 2005下如何编译安装并开发QT应用程序:一、下载及安装1. 从官方网站http://trolltech.com/lang/cn/downloads/open-

2010-01-15 15:38:00 991

原创 域名解析文件hosts文件是什么?如何修改hosts文件?

如何修改hosts文件? hosts文件的位置:xp,2000等系统在 C:/windows/system32/drivers/etc 文件夹中找到Hosts文件并用记事本打开(Windows 9x/Me系统在C:/Windows文件夹中找)按照 ip地址  域名 的格式添加单独的一行记录。例如 72.14.219.190 www.hb

2010-01-14 10:06:00 7610

转载 GetWindowRect和GetClientRect

原文:http://blog.chinaunix.net/u/25372/showart_304363.htmlGetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。    GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得

2010-01-08 17:07:00 694 1

原创 wndows头文件中提供的位运算宏及地址强转操作符的小节(BYTE,WORD,DWORD,MAKEWORD,LOWORD,LOBYTE.....)

使用vc经常会碰到使用MAKEWORD,LOWORD,LOBYTE等的情况,那么分析一下吧! 一.类型解析符(BYTE,WORD,DWORD)学过汇编应该知道,一个数据过来了,其到底代表什么,需要我们自己指定,我们可以指定其读取方式是字节,字,或双字,如下:     DWORD    dw = 0xffaabbcc;    //这是一个32位的值    DWORD    d

2010-01-08 15:54:00 3702

原创 最小重新生成--编译噩梦

在vc的c++选项里,有一个最小重新生成选项,一般情况下是默认打开的,但在vs05中其bug实在太多,尤其当工程大了以后,没事就会出现莫名其妙的速度,没错,开启最小重新生成后,编译链接的速度将大大提升,几乎瞬间完成,但其隐藏的隐患是很多的,很多时候你不得不花更多的时间来弄清楚到底是你的代码有错还是编辑器的错误。 所以,坚决要关闭此项。

2010-01-08 15:50:00 2280 1

转载 深度解析VC中的消息

 消息是指什么?  消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。  消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类

2010-01-06 16:40:00 512 1

转载 VC++中的自定义消息

 在VC++中想加入自定义消息,以下方法可供参考 …… 1 首先定义消息:例如 define WM_MYMESSAGE (WM_USER+100) 2 在.H文件中,加入消息响应函数,如: LONG OnMyMessage(WPARAM w,LPARAM l);  该函数有规定的格式: LONG Function_

2010-01-06 16:12:00 570

转载 vc进程通信

前言   在这里,我主要是概要介绍一下常见的进程通信的相关知识,而没有详细介绍每种进程通信的方式。其原因有二:第一,篇幅有限,当然,这可能是自己懒的借口(事实如此,很多东西是直接copy来的)。第二,抛砖引玉。个人觉得对于一个程序设计人员来讲,你没必要也不可能学会所有知识,你的关键是优先掌握自己需要的知识。我介绍的再全面,也不可能完全符合你的要求,到头来你还得继续学

2010-01-05 21:33:00 1556

转载 vc++中进程通信之剪贴板常用函数

  操作系统中实现同一台机器上的不同进程之间的通信是非常重要的。一般来说,进程间的通信方法有三种:剪贴板、邮槽和管道。由于后两种方式需要一定的操作系统基础,此处就不作介绍。本节将详细介绍采用剪贴板进行进程通信的实现。剪贴板常用函数读者应该对剪贴板是比较熟悉的,当按下【Ctrl+C】键时,选中的内容就会复制到剪贴板中,然后再按下【Ctrl+V】键,可以将剪贴板上的内容复制到应用程序中。

2010-01-05 21:25:00 857

转载 VC 查找进程,关闭进程

//// FindProcess// 这个函数唯一的参数是你指定的进程名,如:你的目标进程// 是 "Notepad.exe",返回值是该进程的ID,失败返回0//DWORD FindProcess(char *strProcessName){ DWORD aProcesses[1024], cbNeeded, cbMNeeded; HMODULE hM

2010-01-05 21:03:00 9706 2

转载 在VC中如何结束进程和启动新进程?

在VC程序中如何结束系统正在运行的其他进程(该进程必须有窗口界面),其实很简单,按如下步骤进行即可:    1.取得进程的句柄(利用FindWindow函数得到);    2.获取进程ID号(用GetWindowThreadProcessId函数获取);    3.打开进程,OpenProcess函数中的第一个参数设为PROCESS_TERMINATE,就可以获取处理该进程的句柄;

2010-01-05 20:50:00 2586

转载 在VC++ 6.0下利用消息实现内部进程通讯

 内部进程间通讯和数据交换有多种方式:消息、共享内存、匿名(命名)管道、邮槽、Windows套接字等多种技术。其中利用消息机制实现IPC虽然同其他方法相比有交换的数据量小、携带的信息少等缺点,但由于其实现方便、应用灵活而广泛应用于无须大量、频繁数据交换的内部进程通讯系统之中,尤其是对于在上层主控软件与底层工作软件之间的命令与响应上更能充分显示其良好的性能。本文就通过编制一个主控软件和一个受

2010-01-05 20:38:00 741

转载 关于进程间互发信息

  想一想,在平时的处理程序的时候,我们都是在一个进程中进行处理,所以,在处理字符串的时候,我们都不用考虑太多的问题,处理什么样的数据和数据的发送都会在同一个进程中进行。  但是,假如要你负责一个程序要在两个不同的进程中交换数据,你会怎么办,你要想怎样做,一般的做法是这样,自定义一个消息,然后你就把这个数据放在这个消息附带的参数WPARAM wParam 与 LPARAM lP

2010-01-05 20:16:00 666

转载 用Visual C++干干净净地清除进程

读者朋友们可能经常会碰到这样一个问题,想对某些进行操作时,发现这些文件正在被其它程序使用,处于打开状态,而且是被独占打开,这时是没法对文件进行操作的。因此,要想操作这些文件,必须将打开这些文件的进程清除掉。那么如何干净地清除进程呢?其实,在Windows2000操作系统版本中有一个工具程序叫tskill.exe,用它就可以清除掉某个程序的进程,在输入"tskill程序名"后就可以清除其

2010-01-05 19:57:00 815

转载 VC++中进程与多进程管理的方法

 进程是当前操作系统下一个被加载到内存的、正在运行的应用程序的实例。每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和数据以及线程堆栈、堆分配空间等动态分配的空间。进程仅仅是一个存在,是不能独自完成任何操作的,必须拥有至少一个在其环境下运行的线程,并由其负责执行在进程地址空间内的代码。

2010-01-05 19:32:00 603

转载 进程间通信

摘 要 随着人们对应用程序的要求越来越高,单进程应用在许多场合已不能满足人们的要求。编写多进程/多线程程序成为现代程序设计的一个重要特点,在多进程程序设计中,进程间的通信是不可避免的。Microsoft Win32 API提供了多种进程间通信的方法,全面地阐述了这些方法的特点,并加以比较和分析,希望能给读者选择通信方法提供参考。

2010-01-04 21:48:00 516

转载 进程间通信之邮槽

简介有时候我们需要一个程序与另一个程序之间进行通信。你可能在多台机器上有多个服务器运行,而在一个中央位置对一个或多个服务器进行远程监控。Windows平台为我们提供了一系列通信方式,从Socket到命名管道,DDE,DCOM,邮槽等。本文中作者将探讨邮槽这一通信机制,假定读者熟悉CreateFile(),ReadFile(),WriteFile()等A

2010-01-04 21:36:00 768

google protobuf visual Studio 2008 语法高亮插件(protobuf syntax highlighter)

我写的google protobuf 的visual studio2008 语法高亮插件,目前只有语法高亮,没有自动完成等功能,后续考虑添加。

2012-11-03

Shaders for Game Programmers and Artists 源码

Shaders for Game Programmers and Artists 源码 Shaders for Game Programmers and Artists 源码

2010-01-19

DirectX特效游戏程序设计 源码

DirectX特效游戏程序设计 源码 DirectX特效游戏程序设计 源码

2010-01-10

进程通信方式_消息方式

进程通信方式 消息方式 copydatad

2010-01-04

c++ templates 英文chm版

c++ templates 英文chm版

2009-12-12

udp实现的小型聊天程序

udp实现的小型聊天程序,应经做了很好的代码注释

2008-12-03

小型聊天程序,客户端服务器模式

小型聊天程序,客户端服务器模式,几乎所有代码我都加了说明

2008-12-03

空空如也

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

TA关注的人

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