自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Run A World

撬动世界

  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

转载 RGB转灰度图的几种算法

方法一:    对于彩色转灰度,有一个很著名的心理学公式:                          Gray = R*0.299 + G*0.587 + B*0.114     方法二:     而实际应用时,希望避免低速的浮点运算,所以需要

2011-08-01 00:57:37 23177

转载 引用MFC指针的获取(转载)

<br />chilli 的 MFC指针的获取<br />1、获取应用程序指针<br />CMyApp* pApp=(CMyApp*)AfxGetApp();<br />2、获取主框架指针<br />CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针<br />CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);<br />或者<br />CMainFrame* pMainFrame = (CMainFrame

2010-09-27 13:29:00 850

转载 分组密码加密模式

<br />为了对长度超过密码算法分组大小的明文进行加密,设计到分组密码的工作模式的问题,简单说就是分组块进行加密时的链接关系。也可以理解为密码算法如DES,AES等解决的是一个分组长度的明文加密成密文的过程,而对于任意长度的明文的加密过程则以加密算法为基础,并在某种工作模式下来完成加密过程。因而单独说此数据采用什么算法加密的是没意义的,同样是aes加密,模式不一样时,密文不一样。有了密文,有了密钥,不知道加密模式的话一样无法解密。<br /><br />分组密码的工作模式主要有<br />(1)电子密码本

2010-08-14 00:47:00 4411

转载 部署VC2008应用程序

<br />如果你编译了一个VC2008的默认的CRT/MFC的应用程序,如果目标部署电脑上没有安装相应的VC2008的动态库,当运行你的程序的时个,会出现如下错误信息.<br /> <br />这是因为程序使用了基于VC2008的CRT/MFC的动态库版本.<br />解决这个问题,有三种方法:<br />1.使用静态链接库编译(缺点,生成的exe的程序过于庞大)<br />2.使用vcredist_x86.exe / vcredist_x64.exe 将VC2008的发行版的DLL安装在你的系统上.(缺

2010-08-03 12:53:00 761

转载 内存映射文件的工作原理及使用方法

Win32 API提供了一种进行文件操作的高效途径,即内存映射文件。内存映射文件允许在Win32进程的虚拟地址空间中保留一段内存区域,把目标文件映射到这段虚拟内存之中。可以用存取内存数据的方式,直接操作文件中的数据,就像这些数据放在没存中一样。而实际上,我们并没有、也不需要调用API函数来读写文件,更不需要自己提供任何缓冲算法,操作系统将会完成这些工作。使用内存映射文件能给程序开发工作提供极大方便,程序的运行效率也很高。内存映射文件在Windows NT和Windows 95中的实现机制略有不同,下

2010-08-01 01:03:00 1225

原创 分页与非分页内存

在写驱动的时候,经常要调用ExAllocatePoolWithTag函数分配内存,其中第一个参数可以是如下几个: NonPagedPool 从非分页内存池中分配内存 PagedPool 从分页内存池中分配内存 NonPagedPoolMustSucceed 从非分页内存池中分配内存,如果不能分配则产生bugcheck NonPagedPoolCacheAligned 从非分页内存池中分配内存,并确保内存与CPU cache对齐 NonPagedPoolCacheAligne

2010-07-30 18:42:00 1078

原创 内存映射文件使用详细

<br />摘要: 本文通过内存映射文件的使用来对大尺寸文件进行访问操作,同时也对内存映射文件的相关概念和一般编程过程作了较为详细的介绍。<br /><br />  关键词: 内存映射文件;大文件处理;分配粒度 <br /> 引言<br />  文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的

2010-07-30 18:05:00 597

转载 VC++实现Vista和Win7系统低权限程序向高权限程序发消息

 typedef BOOL (WINAPI *_ChangeWindowMessageFilter)( UINT , DWORD);BOOL CVistaMsgRecvApp::AllowMeesageForVista(UINT uMessageID, BOOL bAllow)//注册Vista全局消息{     BOOL bResult = FALSE;     HMODULE

2009-11-23 18:00:00 812

原创 开发日志一:前期准备Ogre与irrlicht(食人魔vs 鬼火)

写在之前的话:写这篇文章的时候,游戏引擎的单机部分开发已经差不多一半,一些工具也陆陆续续的出现。我只有一个感慨,这个工程是在是太浩大了,从网格模型的组织,射线碰撞件检测,高度图,材质,贴花,GUI,玩家,战斗模式,AI,物件,嵌入的脚本系统,3D音效等。终于,我们被迫停下来了,需要对整个系统进行修改重新设计(最坏情况),虽然最初我们也是本着面向接口,面向组件的实现进行设计,但是由于大量技术细节

2008-11-26 17:18:00 4413

转载 Windows环境下Unicode编程总结

UNICODE环境设置 在安装Visual Studio时,在选择VC++时需要加入unicode选项,保证相关的库文件可以拷贝到system32下。   UNICODE编译设置: C/C++, Preprocessor difinitions 去除_MBCS,加_UNICODE,UNICODE 在

2008-10-22 23:15:00 632

原创 简单明了的boost编译过程

在网上找了不少资料,发现说的都比较笼统,我简明一下,呵呵,大家不要在编译过程中重复浪费时间哈。针对windows用户VS编译一:先编译bjam程序启动命令行进入../boost_1_36_0/tools/build/jam_src目录运行build即可运行结束后,将新出现bin.ntx86目录,我们所需要的bjam.exe就在该目录下。二:编译库boost得到bjam.ex

2008-10-14 13:11:00 753

转载 CInternetSession的简单使用

CInternetSession session;CHttpFile *file = NULL; CString strURL = " http://www.ourjsj.com";CString strHtml = "”;   //存放网页数据 try{       file = (CHttpFile*)session.OpenURL(strURL);}catch(C

2008-10-13 19:25:00 474

转载 C++ string祥解

  之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。    好了,进入正题………首先,为了在我们的程序中使

2008-08-28 16:14:00 483

STL入门教程.chm

STL入门教程.chm 非常简单喔 这篇文章是关于C++语言的一个新的扩展——标准模板库的(Standard Template Library),也叫STL。 当我第一次打算写一篇关于STL的文章的时候,我不得不承认我当时低估了这个话题的深度和广度。有很多内容要含盖,也有很多详细描述STL的书。因此我重新考虑了一下我原来的想法。我为什么要写这篇文章,又为什么要投稿呢?这会有什麽用呢?有再来一篇关于STL的文章的必要吗? 当我翻开Musser and Saini的页时,我看到了编程时代在我面前消融。我能看到深夜消失了, 目标软件工程出现了。我看到了可维护的代码。一年过去了,我使用STL写的软件仍然很容易维护。 让人吃惊的是其他人可以没有我而维护的很好! 然而,我也记得在一开始的时候很难弄懂那些技术术语。一次,我买了Musser&Saini,每件事都依次出现,但是在那以前我最渴望得到的东西是一些好的例子。 当我开始的时候,作为C++一部分的Stroustrup还没出来,它覆盖了STL。 因此我想写一篇关于一个STL程序员的真实生活的文章可能会有用。如果我手上有一些好的例子的话,特别是象这样的新题目,我会学的更快。 另外一件事是STL应该很好用。因此,理论上说,我们应该可以马上开始使用STL。 什麽是STL呢?STL就是Standard Template Library,标准模板库。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。 STL的目的是标准化组件,这样你就不用重新开发它们了。你可以仅仅使用这些现成的组件。STL现在是C++的一部分,因此不用额外安装什麽。它被内建在你的编译器之内。因为STL的list是一个简单的容器,所以我打算从它开始介绍STL如何使用。如果你懂得了这个概念,其他的就都没有问题了。另外,list容器是相当简单的,我们会看到这一点。 这篇文章中我们将会看到如何定义和初始化一个list,计算它的元素的数量,从一个list里查找元素,删除元素,和一些其他的操作。要作到这些,我们将会讨论两个不同的算法,STL通用算法都是可以操作不止一个容器的,而list的成员函数是list容器专有的操作。 这是三类主要的STL组件的简明纲要。STL容器可以保存对象,内建对象和类对象。它们会安全的保存对象,并定义我们能够操作的这个对象的接口。放在蛋架上的鸡蛋不会滚到桌上。它们很安全。因此,在STL容器中的对象也很安全。我知道这个比喻听起来很老土,但是它很正确。 STL算法是标准算法,我们可以把它们应用在那些容器中的对象上。这些算法都有很著名的执行特性。它们可以给对象排序,删除它们,给它们记数,比较,找出特殊的对象,把它们合并到另一个容器中,以及执行其他有用的操作。 STL iterator就象是容器中指向对象的指针。STL的算法使用iterator在容器上进行操作。Iterator设置算法的边界 ,容器的长度,和其他一些事情。举个例子,有些iterator仅让算法读元素,有一些让算法写元素,有一些则两者都行。 Iterator也决定在容器中处理的方向。 你可以通过调用容器的成员函数begin()来得到一个指向一个容器起始位置的iterator。你可以调用一个容器的 end() 函数来得到过去的最后一个值(就是处理停在那的那个值)。 这就是STL所有的东西,容器、算法、和允许算法工作在容器中的元素上的iterator。 算法以合适、标准的方法操作对象,并可通过iterator得到容器精确的长度。一旦做了这些,它们就在也不会“跑出边界”。 还有一些其他的对这些核心组件类型有功能性增强的组件,例如函数对象。我们将会看到有关这些的例子,现在 ,我们先来看一看STL的list。

2008-12-24

空空如也

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

TA关注的人

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