摘要:
在游戏开发过程,经常可以碰到一些对象需要不断被创建、销毁,这会导致性能低不说,还会出现内存碎片。以下实现一种可扩展、可重用的对象缓冲池来避免这种情况。 具体使用方法: 测试代码2: 输出: 问题出现:此问题比较隐蔽,在pObj Free之后内存值并没有清空,pObj2又重用了pObj对应的内存块,此时就出现了pObj2->m_var还是pObj->m_var的值,解决方法请看下回分解。 阅读全文
摘要:
在编程中涉及到“中文字符”时,经常需要进行字符集编码间转换。比如代码中以“GBK”字符集编码来处理,而程序中读取文件内容却是“UNICODE”字符集编码(即文件的前两个字节为0XFFFE),此时就涉及到字符集编码间转换,以免出现乱码。LINUX:字符集编码转换依赖于本地系统,命令:iconv --list显示所有可以相互间转换的值。Windows: 完成UTF-16(宽字符)转换成其他新字符集编码(__in UINT CodePage).http://msdn.microsoft.com/en-us/library/dd 阅读全文
摘要:
VS2005应用程序在运行时有时会莫名其妙出现以下提示,应用程序无法运行:"没有找到 MSVCR80D.dll,因此这个程序未能启动,重新安装应用程序,可能会修复此问题。"修正的方法,修改项目属性-Manifest Tool-General中"Use FAT32 Work-around"设置,然后重新编译!问题所在:由于vs.net 2005 采用了一种新的DLL方案,搞成一个exe还要配有一个manifest文件(一般在嵌入文件里了,所以看不到,不过也可以不嵌入,这样会生产一个 程序名 .exe.manifest的文件,没它exe自己就转不了了:)这是个新功能,微软弄了个新工具(mt 阅读全文
摘要:
算法:对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 阅读全文
摘要:
1、查看网络 /sbin/ifconfig -a2、启动网卡 ifup 网卡名(比如:eth0)3、关闭网卡 ifdown 网卡名(比如:eth1) 阅读全文
摘要:
Linux文件权限总共用10位来表示,其中第一位表示是否为文件夹(即如果是文件夹则为d --- --- --- ),后面的9位每3位代表一个权限如下:- --- --- --- 自己(拥有者) 同组用户 其他用户每3位又具体代表 :读、写、执行权限比如:- 111 1-- 1-- (-744) 表示拥有者有读写执行权限,同组用户只读权限,其他用户也只有只读权限。更改文件权限命令: chmod 权限 filename 阅读全文
摘要:
用SecyreCRT登录到linux上,显示时出现乱码,需要添加gbk字符集支持1、字符集查看: cat /etc/sysconfig/i18n2、对中文支持,在/etc/sysconfig/i18n中添加LANG="zh_CN.gbk"补充:解决Linux系统下终端setup显示乱码 阅读全文
摘要:
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 阅读全文
摘要:
进程间通信方式: socket、管道(pipe)、信箱(MailSlot)、共享内存(ShareMemory) 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。 Windows上共享内存是通过FileMapping实现的; 1、创建FileMapping内核对象:CreateFileMapping; 2、打开FileMapping内核对象; 3、Map 阅读全文
摘要:
环形缓冲区是生产者和消费者模型中常用的数据结构。生产者将数据放入数组的尾端,而消费者从数组的另一端移走数据,当达到数组的尾部时,生产者绕回到数组的头部。 如果只有一个生产者和一个消费者,那么就可以做到免锁访问环形缓冲区(Ring Buffer)。写入索引只允许生产者访问并修改,只要写入者在更新索引之前将新的值保存到缓冲区中,则读者将始终看到一致的数据结构。同理,读取索引也只允许消费者访问并修改。... 阅读全文