摘要: 在游戏开发过程,经常可以碰到一些对象需要不断被创建、销毁,这会导致性能低不说,还会出现内存碎片。以下实现一种可扩展、可重用的对象缓冲池来避免这种情况。  具体使用方法:  测试代码2:  输出:  问题出现:此问题比较隐蔽,在pObj Free之后内存值并没有清空,pObj2又重用了pObj对应的内存块,此时就出现了pObj2->m_var还是pObj->m_var的值,解决方法请看下回分解。 阅读全文
posted @ 2011-02-16 16:34 ybtyoyo 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 在编程中涉及到“中文字符”时,经常需要进行字符集编码间转换。比如代码中以“GBK”字符集编码来处理,而程序中读取文件内容却是“UNICODE”字符集编码(即文件的前两个字节为0XFFFE),此时就涉及到字符集编码间转换,以免出现乱码。LINUX:字符集编码转换依赖于本地系统,命令:iconv --list显示所有可以相互间转换的值。Windows:  完成UTF-16(宽字符)转换成其他新字符集编码(__in UINT CodePage).http://msdn.microsoft.com/en-us/library/dd 阅读全文
posted @ 2011-02-15 15:51 ybtyoyo 阅读(239) 评论(0) 推荐(0) 编辑
摘要: VS2005应用程序在运行时有时会莫名其妙出现以下提示,应用程序无法运行:"没有找到 MSVCR80D.dll,因此这个程序未能启动,重新安装应用程序,可能会修复此问题。"修正的方法,修改项目属性-Manifest Tool-General中"Use FAT32 Work-around"设置,然后重新编译!问题所在:由于vs.net 2005 采用了一种新的DLL方案,搞成一个exe还要配有一个manifest文件(一般在嵌入文件里了,所以看不到,不过也可以不嵌入,这样会生产一个 程序名 .exe.manifest的文件,没它exe自己就转不了了:)这是个新功能,微软弄了个新工具(mt 阅读全文
posted @ 2011-01-24 10:58 ybtyoyo 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 算法:对vector进行堆排序// range heap example#include <iostream>#include <algorithm>#include <vector>using namespace std;int main () { int myints[] = {10,20,30,5,15}; vector<int> v(myints,myints+5); vector<int>::iterator it; make_heap (v.begin(),v.end()); cout << "ini 阅读全文
posted @ 2011-01-21 16:49 ybtyoyo 阅读(11421) 评论(0) 推荐(0) 编辑
摘要: 1、查看网络 /sbin/ifconfig -a2、启动网卡 ifup 网卡名(比如:eth0)3、关闭网卡 ifdown 网卡名(比如:eth1) 阅读全文
posted @ 2011-01-19 16:53 ybtyoyo 阅读(181) 评论(0) 推荐(0) 编辑
摘要: Linux文件权限总共用10位来表示,其中第一位表示是否为文件夹(即如果是文件夹则为d --- --- --- ),后面的9位每3位代表一个权限如下:-   ---       ---     ---  自己(拥有者)   同组用户  其他用户每3位又具体代表 :读、写、执行权限比如:- 111 1-- 1-- (-744) 表示拥有者有读写执行权限,同组用户只读权限,其他用户也只有只读权限。更改文件权限命令: chmod 权限 filename 阅读全文
posted @ 2011-01-19 16:50 ybtyoyo 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 用SecyreCRT登录到linux上,显示时出现乱码,需要添加gbk字符集支持1、字符集查看: cat /etc/sysconfig/i18n2、对中文支持,在/etc/sysconfig/i18n中添加LANG="zh_CN.gbk"补充:解决Linux系统下终端setup显示乱码 阅读全文
posted @ 2011-01-17 17:25 ybtyoyo 阅读(959) 评论(0) 推荐(0) 编辑
摘要: LINUX上SMB成功运行步骤:1、LINUX安装时需要选择SERVER应用或者自己把对应的组件选上2、SMB默认并没有打开,可以通过setup进入"系统服务配置",将"smb" "nfs"勾上。3、SMB启动: /etc/init.d/smb start4、添加smb用户:smbpasswd -a username5、测试:在windows上cmd输入\\ip\看是否可以正常访问,如果不能检查防火墙是否关闭(setup-防火墙配置)6、/etc/samba/smb.conf配置文件(可选)[global]unix charset = cp936netbios name = username 阅读全文
posted @ 2011-01-17 17:07 ybtyoyo 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 进程间通信方式: socket、管道(pipe)、信箱(MailSlot)、共享内存(ShareMemory)  共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。  Windows上共享内存是通过FileMapping实现的;  1、创建FileMapping内核对象:CreateFileMapping;  2、打开FileMapping内核对象;  3、Map 阅读全文
posted @ 2010-11-14 13:55 ybtyoyo 阅读(3770) 评论(0) 推荐(0) 编辑
摘要: 环形缓冲区是生产者和消费者模型中常用的数据结构。生产者将数据放入数组的尾端,而消费者从数组的另一端移走数据,当达到数组的尾部时,生产者绕回到数组的头部。  如果只有一个生产者和一个消费者,那么就可以做到免锁访问环形缓冲区(Ring Buffer)。写入索引只允许生产者访问并修改,只要写入者在更新索引之前将新的值保存到缓冲区中,则读者将始终看到一致的数据结构。同理,读取索引也只允许消费者访问并修改。... 阅读全文
posted @ 2010-11-14 13:49 ybtyoyo 阅读(2249) 评论(1) 推荐(0) 编辑