
C++编程
文章平均质量分 70
ShowLong
这个作者很懒,什么都没留下…
展开
-
SystemParametersInfo详说
函数功能描述:查询或设置系统级参数。该函数也可以在设置参数中更新用户配置文件。函数原型B00L SystemParametersinfo(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinlni);参数uiAction:该参数指定要查询或设置的系统级参数。其取值如下;SPI_GETACCESSTIMEOUT:检索与可访问特性相关联的超时段的信息,P原创 2006-02-05 12:43:00 · 9032 阅读 · 6 评论 -
如何判断一个float/double是不是一个有效的值
前几天游戏程序爆在三角形碰撞测试里面.结果发现是D3DXIntersectTri给我返回了一个float(-1.#INF000).这个值相信大家都不陌生.出现这个值的情况一般是除数为0的情况下,即分母为0.就像这样: float a = .7f; float b = .0f; a /= b; 那么如何判断一个float/double值是不是(-1.#INF原创 2009-07-09 10:54:00 · 5009 阅读 · 2 评论 -
讨论标准模板库std::vector的容量/大小及其内存增量
首先解释一下容量/大小的区别: std::vector::capacity() : 指容器的能容纳多少个。 std::vector::size() : 指容器当前已装多少个。明白上面的意思思路就清晰多了。 这几天有同事用vector的时候遇到问题,说是当push_back以后,以前引用了vector的地址就不能访问。造成以前引用的地址不能使用的原因估计大家都知道。主要原因是vector原创 2009-07-09 12:44:00 · 8989 阅读 · 2 评论 -
一些有效的快速嵌汇编数字计算函数
查询CPU支持属性函数,输入查询码,返回结果到dwRet中,本人原创.关于cpuid指令详见VC2005: ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vclang/html/f8c344d3-91bf-405f-8622-cb0e337a6bdc.htminline void DoCPUID(DWORD nTy原创 2010-02-11 22:49:00 · 3079 阅读 · 0 评论 -
关于CPU的SSE指令集C++代码
仅VS2002及以上才支持SSE指令函数库目前市面上的大多数CPU(Intel、AMD)均支持SSE指令集 使用SSE指令函数需要包含以下头文件#include SSE指令的细节这里不详细说明,这里只说一说批量计算功能但这个批量也仅仅是一次处理4个32位符点数,或者其它,它的一次数据传送量为128位,即16字节。所以在处理大量数组的情况下SSE指令集就比普通汇编指原创 2010-02-11 23:13:00 · 4982 阅读 · 0 评论 -
今天引进《GPU精粹3》中文版
<br />呵呵,前不久在网上看到《GPU精粹3》中文版开始面世,按耐不住心情,急切去当当网定购了一本,书是从北京发到上海的。我6月5日就下了定单,当天就从北京发货了,结果让我足足等了十一天才收到,刚好于端午节送到家,呵呵,也算是节日礼物。<br /> <br />总体评价此书的内容学术性较高,印刷质量非常好,全书大部分都是彩印,纸张感觉还行,全价180,当当网价151.7元。共计重量2斤左右,也就是90元/斤,哈哈。清华大学出版社。<br /> <br />上两张书的图看看。<br /><br /> <b原创 2010-06-16 15:47:00 · 4339 阅读 · 0 评论 -
UNICODE模式下使用rapidxml写xml文件
<br />rapidxml介绍:略<br /><br />也许你下载了rapidxml以后,想在UNICODE模式下使用,但编译时会失败并提示错误,该错误提示如下:<br />error C2440: '<function-style-cast>' : cannot convert from 'std::basic_ostream<_Elem,_Traits>' to 'std::ostream_iterator<_Ty>'<br />既然给了提示,意思是说:给定的参数类型与函数所需类型不正确,那么我们就原创 2010-12-06 14:46:00 · 5610 阅读 · 0 评论 -
网络游戏防变速齿轮外挂
<br />对于标题所述这个问题,相信每个游戏都遇到过,一般的做法是查找外挂进程杀之,或者发现有外挂程序不让游戏运行,再或者在服务器做防外挂机制,或者其它。当然这些不能说不是办法,它确实可以解决一些问题。<br /> <br />今天我这里有一种新方法,即在客户端检查程序的安全性,防被外挂修改(封包这里不管),这可样可以解决那些在服务器做安全检查的,又担心服务器压力的人。<br /> <br />原理很简单:别人可以改你的游戏内存,那么你自己还可以恢复游戏内存。<br />是的,就这两句话。<br /> <原创 2010-11-11 20:50:00 · 9607 阅读 · 0 评论 -
高度注意并警惕 placement new [] 的陷阱
按照MSDN上面说明,我们可以认为p和pk所处的地址是相同的,仍而,如果我们把类中的tk成员注掉,执行上面两句结果是p和pk地址相等。但我们把类中的tk成员打开,再执行,p和pk地址却不相等。经调试发现,中间差了4字节,里面存放的刚好就是数组的数量,即4。虽然FFntTexXX是一个类,但其成员没有一个成员有析构函数,所以编译器认为此类可以退化到结构。(当类中有任意一个成员需要析构,如std::vector tk成员,编译器为自动为类FFntTexXX生成析构)或许你又要问了,为原创 2011-01-24 14:22:00 · 3022 阅读 · 0 评论 -
Fuel4D 2.2 发布
Fuel4D 2.2 发布原创 2014-03-15 13:35:51 · 2647 阅读 · 0 评论 -
快速高效的循环std::vector处理,以及std::vector::end函数
今天闲来没事看了一下N久就在我电脑里面的《Effective STL 中文版》。当我看到第43条的时候发现,按上面所讲用:算法替换手工循环。不由得产生了疑问。我记得我以前看vector源代码的时候循环效率最高的是operator[]操作(下标操作)。怎么这里竟然说是算法速度快。 下面先做个测试,代码如下: // 测试类及其调用函数class AAA{pub原创 2009-07-14 11:30:00 · 5806 阅读 · 3 评论 -
判断值是否是2的幂
判断一个是值是否是2的幂在3D游戏中常用函数以往的判断方法是循环判断位或者直接一直循环除2.这些方法的效率可想而知. 这里我用了一种直接位操作进行,效率看代码就知道.先看代码:bool Is2Power(int n){ if (n == 1) return false; if ((((~n)&(n-1))+1) == n)原创 2008-12-01 12:33:00 · 3142 阅读 · 4 评论 -
将1到9平均分成3组,每组3个数,要求这三组数组成的三位数都是完全平方数,打印这样的三个数
vector int > _N1;bool isDiff3(int x){ int a = x % 10, b = x / 10 % 10,c = x / 100; return a != b && b != c && a != c;}template class T > inline T Taxis(T *A, int iMax){ for (int i =原创 2007-06-14 17:28:00 · 4202 阅读 · 0 评论 -
一步一步学STL标准模板库
list 的使用在使用list必须包括头文件#include ,1)、如何定义一个list对象#include int main (void){ list cList; //声明了list模板类 的一个实例}2)、使用list的成员函数push_back和push_front插入一个元素到list中cList. push_back(‘a’); //把一个对象放到一个原创 2006-02-05 16:06:00 · 1630 阅读 · 0 评论 -
走近 STL(适合初学者)
走近 STL作者:陶汉军中国石油大学 计算机02-2下载源代码 本文面向的读者:学习过C++程序设计语言(也就是说学习过Template),但是还没有接触过STL的STL的初学者。这实际上是我学习STL的一篇笔记,老鸟就不用看了。什么是泛型程序设计 我们可以简单的理解为:使用模板的程序设计就是泛型程序设计。就像我们我们可以简单的理解面向对象程序设计就是使用虚函数的程序设计一样。STL是什么转载 2006-03-13 15:10:00 · 3759 阅读 · 0 评论 -
使用DirectShow驱动摄像头
对于小摄像头的驱动有几种方法,通过使用DirectShow来驱动摄像头灵活性比较好,有简单的方法也有比较复杂但更有效的方法,本文只介绍简单方法,希望与大家交流! 用DirectShow来使用摄像头,一般要求摄像头的驱动是WDM格式的,当然,一些比较老的驱动格式DirectShow也可支持。DirectShow通过图形过滤管理器(Filter Graph Manager)来与上层应用程序和下层的驱动原创 2006-02-05 16:16:00 · 2098 阅读 · 0 评论 -
控件“树”中多选拖放功能的实现
控件“树”中多选拖放功能的实现 发布日期: 2/14/2002 | 更新日期: 6/30/2004控件”树”(tree)能够清晰地显示所包含数据的继承关系,是一个强有力的控件。但是真正掌握并能运用CTreeCtrl类的众多特性并不是一件容易的事情。在Visual C++ Developer杂志的9月份、10月份这两期中,Stephen介绍了两个类CBitmapTree和CCheck转载 2006-04-21 13:40:00 · 2353 阅读 · 0 评论 -
动画托盘函数
函数原型:BOOL DrawAnimatedRects(int idAni, CONST RECT *lprcFrom, CONST RECT *lprcTo);idAni:IDANI_CAPTION使用此值,另外一个值不知道怎么用。lprcFrom:源矩型位置lprcTo:目标矩型位置例:向右下角缩小 // 查找任务栏 CRect rect(0,0,0,0); CWn原创 2006-04-19 15:40:00 · 2082 阅读 · 1 评论 -
Visual Studio 2005:在 Visual C++ 中开发自定义的绘图控件
Visual Studio 2005:在 Visual C++ 中开发自定义的绘图控件 发布日期: 2006-4-14 | 更新日期: 2006-4-14Tom ArcherProgram Manager, Microsoft适用于:Win32 APIMicrosoft 基础类Visual C++ 2005摘要:TomArcher介绍自定义的绘图技术 — 开发自定义控件,使自己转载 2006-04-21 10:32:00 · 2360 阅读 · 0 评论 -
Windows消息大全(转载)
消息 MSG_MAP 相应函数 作用WM_LBUTTONDOWN ON_WM_LBUTTONDOWN() OnLButtonDown(UINT nFlags, CPoint point) 相应鼠标左健单击WM_ERASEBKGND ON_MESSAGE(WM_ERASEBKGND,转载 2006-04-27 09:33:00 · 5294 阅读 · 1 评论 -
解开 Windows 下的临界区中的代码死锁
摘要临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。 本文深入研究临界区的原理,以揭示在查找死锁和确认性能问题过程中的有用信息。它还包含一个便利的实用工具程序,可以显示所有临界区及其当前状态。在我们许多年的编程实践中,对于 Win32® 临界区没转载 2006-08-04 12:51:00 · 1574 阅读 · 0 评论 -
对对碰交换两个点后检查可消对象的算法.
最近两天用HGE写了个对对碰...感觉HGE写2D非常方便...以前我都打算自己封装一个2D的..不过HGE的存在已经使我的想法没有太多意思了..好了.以下代码就是交换两个点以后检查可消对象的方法...目前不是最佳的.数据解释:iObject[w][h] : 就是格子内的对象数据.1->N(N=100) 即是该格的状态,可能是可消,放大,缩小,等状态.由自定义的.W_原创 2007-07-05 09:39:00 · 4973 阅读 · 2 评论 -
JPEG 简易文档 V2.15
由于近期在研究一JPEG文件..顺便看到这个..这个是基础..便于进一步学习JPEG..//--------------------以下是转载内容------------------------------------//JPEG 简易文档 V2.15------------------------------ 初稿写于 2000.1.23 最后修订 2003.转载 2007-07-31 20:31:00 · 4971 阅读 · 0 评论 -
打印三角形
#define __str _T("***********************************************************************************************")#define __spc _T("原创 2007-06-05 10:40:00 · 1262 阅读 · 0 评论 -
Fuel4d 2.3 发布
【版本编号】:Fuel4D 2.3。【发布日期】:2014年10月20日。【编译环境】:UNICODE、VS2010、x86。【开发环境】:ANSI/UTF-8/UNICODE、VS2005/2008/2010/2012、ADT+NDK、x86、ARM。【字符模式】:ANSI/UTF-8/UNICODE 混合开发。【运行环境】:Windows全系列、安卓2.3及以上手机或平板。【解压软原创 2014-10-20 13:15:34 · 2555 阅读 · 0 评论