工作中成长
码农
C,cocos2d-x,ogre,手游,网络游戏
展开
-
转载 CString 操作指南
CString 操作指南 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。 使用CString可以让你对字符串的操作更加直截了当。这篇文章不是CString的完全手册,但囊括了大部分常见基本问题。这转载 2007-08-30 17:36:00 · 1029 阅读 · 0 评论 -
深入理解 void*
“void”是C/C++语言中最常见的一个关键字,并不是所有学习C语言的人都能完全了解它的使用方法和技巧。void字面意思是无类型;void*就是无类型指针,void*可以指向任何类型的指针。众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值;如果p1和p2指向不同的数据类型,则必须使用强制类型转换运算符把赋值运算符右边的指针类型转换为左边指针的类型。 例原创 2008-04-29 15:54:00 · 705 阅读 · 0 评论 -
vector与list区别
vector为存储的对象分配一块连续的地址空间,因此对vector中的元素随机访问效率很高。在vecotor中插入或者删除某个元素,需要将现有元素进行复制,移动。如果vector中存储的对象很大,或者构造函数复杂,则在对现有元素进行拷贝时开销较大,因为拷贝对象要调用拷贝构造函数。对于简单的小对象,vector的效率优于list。vector在每次扩张容量的时候,将容量扩展2倍,这样对于小对象来说,原创 2008-05-06 20:44:00 · 4553 阅读 · 3 评论 -
发现一个小型XML文件读写程序——TinyXML
发现一个xml文件读写的程序,感觉挺好,先放在这里备忘,以后有空再写相关使用方法。原创 2008-11-01 10:29:00 · 880 阅读 · 0 评论 -
string 中字符的大小写写转换
toLowerCase(std::string &str){ std::transform(str.begin(), str.end(), str.begin(), std::tolower);}toUpperCase(std::string &str){ std::transform(str.begin(), str.end(), str.be原创 2008-11-18 15:10:00 · 706 阅读 · 0 评论 -
/Zm(指定预编译头的内存分配限制)
Visual C++ 编译器选项 /Zm(指定预编译头的内存分配限制) 更新:2007 年 11 月 确定编译器分配的用于构造预编译头的内存量。/Zmfactor 参数 factor一个比例因子,确定编译器用于构造预编译头的内存量。factor 参数是编译器定义的工作缓冲区的默认大小所占的百分比。factor 参数的默认值是 100原创 2010-04-09 10:05:00 · 1998 阅读 · 0 评论 -
3D MAX SDK Mesh类
<br />1、要从一个INode中获得Mesh对象,首先应该从INode中获得Object对象,然后再转成Mesh对象。<br />2、Mesh 中的数据保存在不同的数组中,常用的包含以下几种:顶点位置信息,颜色信息,法向量,UV坐标,MapChannel信息等。其中法向量的信息不是特别的准确,需要考虑平滑组,面法向量与顶点法向量的差异等。MapChannel用于仅仅有多层纹理贴图坐标的情况,在只有一层纹理坐标的情况下则不需要考虑,使用UV坐标就足够了。<br />3、Mesh中的numVerts变量标记转载 2010-07-23 18:21:00 · 1686 阅读 · 0 评论 -
阿里软件资深架构师谈:开发者的人品问题
<br />程序员都知道:绝大多数编程中的问题,最终都是自己的人品问题。当遇到奇怪的问题时,我们总是喜欢怀疑系统、怀疑编译器、怀疑网络、怀疑硬件……就是不愿意怀疑自己的人品。熬过几个不眠之夜后,最终还是发现自己的代码存在人品问题。只有极少数的情况才是系统的问题。<br />同样,一些程序员在职业发展中遇到问题时,也总是喜欢怀疑公司不好,怀疑战略有问题,怀疑流程制度不合理,怀疑老板和同事……就是不愿意怀疑自己的人品。<br />在大大小小的IT企业中,总能看到一些技术并非最顶尖的程序员做成大事的例子,转载 2010-06-09 10:55:00 · 765 阅读 · 2 评论 -
前置声明和Include以及预编译头
今天研究了一下前置声明和预编译头的东西,归纳几点东西使用原则:尽量在cpp文件里包含头文件1、头文件中能用前置声明的不要用Include,尽量在cpp中包含头文件。大型工程最好做个Prerequisites.h,把所有类型前置声明在一起,防止头文件的重复包涵。2、预编译头文件放那些大多数cpp都会包含的而且不是经常改动的头文件。前置声明 && include原创 2011-12-20 15:18:35 · 1144 阅读 · 0 评论 -
显示真彩色工具条图标
最近写个程序,想更换一下难看的系统工具条,可是VC里面只支持16色的工具条,看了很多网上的帮助,终于搞定了。对于一个大牛程序员来说这 可能很小儿科,可是毕竟咱们不是大牛嘛。所以写出来以此留念。 CImageList imageList; CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP2); //I原创 2007-11-30 16:21:00 · 816 阅读 · 0 评论 -
常用字符串函数
memset原型:extern void *memset(void *buffer, int c, int count);用法:#include 功能:把buffer所指内存区域的前count个字节设置成字符c。说明:返回指向buffer的指针。举例: // memset.c #include #include原创 2007-11-14 11:59:00 · 591 阅读 · 0 评论 -
头大的智能指针
虽然学程序都3年了,可是本人的基本功有的时候自己都怀疑。以前只听说过智能指针但一直没有用过。该来的总该回来躲是躲不掉的。到底让我碰上了。这两天一直在学读写xml。为了简单当然得站在巨人的肩膀上了,所以我用的是很普遍的MS XML读取。废一句话刚开始写了一点程序还没成型所以现在还不想写出来丢人。今天只写一下智能指针的问题。MSXML2::IXMLDOMDocument docPtr;原创 2007-08-31 17:50:00 · 896 阅读 · 0 评论 -
使用random_shuffle()算法随机化序列元素
以前只知道产生随机数用rand()。今天在修改别人程序时无意看到这么一个函数 random_shuffle(()。上网一查原来还可以这么产生随机数列。采用rand()产生一定范围内的随机数是并不是绝对的平均,可能有些数多有些shus产生指定范围内的随机元素集的最佳方法是创建一个顺序序列(也就是向量或者内置数组),在这个顺序序列中含有指定范围的所有值。例如,如何你需要产生100个0-99原创 2007-09-26 17:33:00 · 1430 阅读 · 0 评论 -
开发中常用的几个时间函数
在平时的程序开发尤其是游戏等多媒体的程序开发中,要经常用到时间函数用来衡量程序的运行时间、算法的效率或者在某个时间进行特定的操作等。操作系统和编译器为我们提供了很多时间函数,这些函数的精度也各不相同,所以他们的用途也不尽相同。下面简单总结一下平时常用的几个时间函数。 C语言下的Time函数:获取当前时间 使用:原创 2007-10-23 15:57:00 · 740 阅读 · 0 评论 -
CEdit傻瓜问题
我承认我对MFC很傻瓜,但是最讨厌的就是别人不会发帖问得时候一些“牛人”在那说“你看MSDN啊上面全有啊……”。知道你很牛你想告诉你就直接告诉他,不想告诉就别再这顶帖子占地方。不牢骚了,记一下刚才遇到的一点小问题(当然对于牛人来说就是傻瓜问题)。 CEdit的自动换行和回车换行问题。 自动换行:edit的属性里,multiline选上,AutoHScroll和H原创 2007-10-12 17:40:00 · 647 阅读 · 0 评论 -
CStdioFile类学习笔记
CStdioFile类的声明保存再afx.h头文件中。CStdioFile类继承自CFile类,CStdioFile对象表示一个用运行时的函数fopen打开的c运行时的流式文件。流式文件是被缓冲的,而且可以以文本方式(默认)或者二进制方式打开。CStdioFile类不支持CFile类中的Duplicate、LockRange、UnlockRange函数,如果你使用了,会得到CNotSup原创 2008-01-28 17:25:00 · 766 阅读 · 1 评论 -
c/c++转义字符
/b:回退:向后退一格/f:换页 /n:换行,光标到下行行首/r:回车,光标到本行行首 /t:水平制表 /v:垂直制表 //:反斜杠/‘:单引号/":双引号 /?:问号/ddd:三位八进制 /xhh:二位十六进制 /0:空字符(NULL),什么都不做。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。原创 2007-11-12 16:36:00 · 944 阅读 · 1 评论 -
创建单实例程序
我们在平时写程序时经常要做到在本地只能运行单实例程序,其实在VC里面很简单(这里不是说的设计模式的单实例)只要InitInstance(){ //添加行 HANDLE m_hMutex=CreateMutex(NULL,FALSE, m_pszAppName); if(GetLastError()==ERROR_ALREADY_EXISTS) {原创 2008-01-29 17:39:00 · 698 阅读 · 0 评论 -
编写系统托盘程序
系统托盘程序很常见,最常用的杀毒软件几乎全是这样的。平时在其他程序运行时为了不干扰其他前台程序运行并不显示没用的窗口,只是在任务栏上显示一个程序图标表示该程序正在后台运行。有时候我们也需要编写这样的程序。 要完成这样的程序我们需要做一下3步: 1、设置主边框窗口风格和扩展风格。:PreCreateWindow(CREATESTRUCT& cs){ // TODO: 在此添加专用代码原创 2008-01-29 18:14:00 · 635 阅读 · 0 评论