自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 资源 (6)
  • 收藏
  • 关注

转载 为什么C++中千万不要返回局部对象或变量的引用和指针

大家都知道一个常识:“C++中千万不要返回局部对象或变量的引用和指针”。既然所有C++权威的书上都要求“一定不要返回局部对象或变量的引用和指针”,那为什么C++编译器不从语法上直接禁掉这种用法。如果只是建议的话,那么“返回局部对象或变量的引用和指针”是否有用武之地呢?(从理论上来讲,我认为这种做法似乎总是错误的,原因大家都知道。)例1:class CComplex{publ

2012-03-04 11:30:56 2757

转载 wxWidgets菜单上显示图标

<br /> <br />wxMenu* file_menu =newwxMenu();<br />wxMenuItem* pMenuItem =new wxMenuItem(file_menu, wxID_EXIT, wxT("退出(&X)/tCtrl-x"), wxT("退出本系统"));<br /> <br />wxBitmap bitmap; <br />bitmap.LoadFile(wxT("123.png"), wxBITMAP_TYPE_PNG);<br /> <br />pMenuItem

2011-03-27 09:38:00 1536

原创 windows内存管理

<br />(1)有三种方法:虚拟内存,内存映射文件,内存堆栈。   <br />  虚拟内存是将页文件加载到内存,适用于比较大的对象或结构;<br />  内存映射文件是将磁盘上文件加载到内存,适用于大文件和单机的进程间内存共享;<br />  堆栈就是动态的分配内存,适用于小对象的创建。   <br />  这些在windows核心编程中都描述得很详细的。 <br /> (2) 当进程要读自己的虚拟地址空间中的数据时   <br />  if(数据在物理内存中)   <br />  {   <br />

2010-10-18 15:28:00 604

转载 尽量使用初始化而不要在构造函数里赋值

尽量使用初始化而不要在构造函数里赋值<br /> <br />看这样一个模板,它生成的类使得一个名字和一个t类型的对象的指针关联起来。<br />template<class t><br />class namedptr {<br />public:<br />  namedptr(const string& initname, t *initptr);<br />  ...<br />private:<br />  string name;<br />  t *ptr;<br />};<br />(因为有

2010-10-18 10:11:00 863

转载 把类的析构函数写成虚函数的用意

Cpp代码 #include class Base { public: Base() { mPtr = new int; } ~Base() { delete mPtr; coutclass Base { public: Base() { mPtr = new int; } ~Base() { delete mPtr; cout

2010-10-14 09:28:00 554

转载 常对象和常函数的关系 const

(1) 常对象用const修饰的对象叫对象常量,其格式如下:〈类名〉const 〈对象名〉 或者 const 〈类名〉〈对象名〉声明为常对象的同时必须被初始化,并从此不能改写对象的数据成员。 例:分析下列错误的地方,说明理由;#includeclass Point{ int x, y;public:Point(int a, int b) { x=a; y=b;}Void MovePoint( int a, int b){ x+=a; y+=b;}Void print(){ cout};void main(

2010-10-12 19:11:00 572

原创 sprintf、strcpy 及 memcpy 函数

<br />这些函数的区别在于 实现功能 以及 操作对象 不同。<br />strcpy 函数操作的对象是 字符串,完成 从 源字符串 到 目的字符串 的 拷贝 功能。<br />sprintf 函数操作的对象 不限于字符串:虽然目的对象是字符串,但是源对象可以是字符串、也可以是任意基本类型的数据。这个函数主要用来实现 (字符串或基本数据类型)向 字符串 的转换 功能。如果源对象是字符串,并且指定 %s 格式符,也可实现字符串拷贝功能。<br />memcpy 函数顾名思义就是 内存拷贝,实现 将一个 内存

2010-09-28 14:23:00 818

转载 #pragma once与 #ifndef的区别

<br />为了避免同一个文件被include多次<br /><br />1   #ifndef方式<br />2   #pragma once方式<br /><br />在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。<br />    方式一:<br />    #ifndef __SOMEFILE_H__<br />    #define __SOMEFILE_H__<br />    ... ... // 一些声明语句<br />    #endif<br /

2010-09-08 17:04:00 437

转载 深入C++的new

<br />“new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。<br />new的过程<br />当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。假如我们定义了如下一个类A:<br />class A<br />{<br />   int i;<br />public:<br />

2010-06-28 16:47:00 451

转载 程序在内存中运行的奥秘

<br />内存管理是操作系统的核心功能,无论对于开发者还是系统管理员内存管理的重要性都是不言而喻的。我会在接下来的几篇文章通过计算机的实际运行过程谈谈内存管理,当然在必要的时候我也会从底层原理去阐释这个问题。我们提到的概念是不局限于平台特性的通用概念,不过为了阐述这些概念我们选取的实例大多来源于Linux和基于x86架构的32位Windows操作系统。这篇文章,我们首先来看看程序是如何使用内存的。<br /> <br />  多任务操作系统中,每一个进程都有它自己的内存“沙盒”。所谓“沙盒”,是指虚拟地址

2010-06-25 16:12:00 790

转载 Boost线程简介(转自Boost中文站)

Boost线程简介(转自Boost中文站)<br />C++ Boost Thread 编程指南0 前言1 创建线程2 互斥体3 条件变量 4 线程局部存储5 仅运行一次的例程6 Boost线程库的未来 7 参考资料:0 前言标准C++线程即将到来。CUJ预言它将衍生自Boost线程库,现在就由Bill带领我们探索一下Boost线程库。<br />就在几年前,用多线程执行程序还是一件非比寻常的事。然而今天互联网应用服务程序普遍使用多线程来提高与多客户链接时的效率;为了达到最大的吞吐量,事务 服务器在单独

2010-06-25 15:56:00 798

转载 vector类中的构造函数

<br />向量容器使用动态数组存储、管理对象。因为数组是一个随机访问数据结构,所以可以随机访问向量中的元素。在数组中间或是开始处插入一个元素是费时的,特别是在数组非常大的时候更是如此。然而在数组末端插入元素却很快。<br />实现向量容器的类名是vector(容器是类模板)。包含vector类的头文件名是vector。所以,如果要在程序里使用向量容器,就要在程序中包含下面语句:<br />#include <vector><br />此外,在定义向量类型对象时,必须指定该对象的类型,因为vector类是一

2010-06-23 10:10:00 10112 1

转载 cin

<br />很多初学者都认为cin函数是一个很简单的函数,其实不然!cin函数有很多需要了解的知识(比如:cin的返回值是什么,cin提供了哪些成员函数且分别是什么作用,如cin.clear(), cin.ignore(), cin.fail(), cin.good()等等),如果没有很好的掌握,在使用的时候很可能会出问题却不知其原因!而且很多人也确确实实遇到过不少问题,以下是几个简单的例子:<br />程序1:<br />#include <iostream><br />using namespace s

2010-06-11 17:19:00 1612 1

转载 cout格式输出的使用

<br />控制符是在头文件iomanip.h中定义的对象。 使用前必须把iomanip.h包含进来<br /> 1. I/O的书写格式<br />  I/0流是输入或输出的一系列字节,当程序需要在屏幕上显示输出时,可以使用插入操 作符“<<”向cout输出流中插入字符。例如:<br />   cout<<”This is a program./n";<br />  当程序需要执行键盘输入时,可以使用抽取操作符“>>”从cin输人流中抽取字符。例如:<br />   int myAge;<br />   c

2010-06-11 15:16:00 1420

原创 在C++中explicit关键字

<br />在C++中explicit作用:<br />explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。<br />explicit使用注意事项:<br />*explicit 关键字只能用于类内部的构造函数声明上。<br />*explicit 关键字作用于单个参数的构造函数。<br />* 在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换<br /> <br />如下面所示

2010-06-08 16:35:00 370

转载 sizeof(struct)的内存分配

<br />请看下面的结构:<br />   struct MyStruct   {     double dda1;   char dda;       int type;   };<br />对结构MyStruct采用sizeof会出现什么结果呢?sizeof(MyStruct)为多少呢?<br />也许你会这样求:sizeof(MyStruct)=sizeof(double)+sizeof(char)+sizeof(int)=13<br />但是当在VC中测试上面结构的大小时,你会发现sizeof(M

2010-06-03 15:41:00 479

转载 strlen和sizeof

<br />1.sizeof返回值类型为size_t,在<stddef.h>中有定义:typedef unsigned int size_t。该类型保证能容纳实现所建立的最大对象的字节大小。 <br />2.sizeof是算符,strlen是函数。 <br />3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''/0''结尾的。 <br />sizeof还可以用函数做参数,比如: <br />short f(); <br />printf("%d/n", sizeof(f()

2010-06-03 14:23:00 586

原创 wxWidgets 在windows下加载图标资源

将XX.ico拷贝到项目根目录,新建resource.rc文件,文件手动输入下列内容:myicon ICON   "XX.ico"#include 在程序顶层Frame中写出如下代码:SetIcon(wxIcon(wxT("myicon")));    如果出现错误:CVTRES : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, l

2010-05-25 19:30:00 1607 1

转载 C++中的文件输入/输出

标题 C++中的文件输入/输出(1):你的第一个程序 Kusk(翻译) 关键字 C++ 文件 FileI/O 入门 出处 http://www.cpp-home.com/FileIO_tutorial.php  C++中的文件输入/输出(1)原作:Ilia Yordanov, [email protected] 简介本教程将以C++最基本的文件I/O(输出/输

2010-05-19 10:11:00 738

转载 C++ sizeof 使用规则及陷阱分析

1、什么是sizeof   首先看一下sizeof在msdn上的定义:   The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type s

2010-05-17 09:52:00 372

转载 C/C++ 中的移位操作拾遗

引言最近笔者一直在做JPEG的解码工作,发现用完全使用哈夫曼树进行解码比较费时,而使用表结构存储编码和值的对应关系比较快捷,但是也存在比较难处理的地方,比如解码工作通常是以位为单位的操作,这里必然会涉及到移位操作,而笔者之前对位的操作很少,经验很欠缺,经过这次历练终于发现了一个自己曾经忽视的东西,那就是C/C++中的移位操作容易出错的情况。1、什么样的数据类型可以直接移位char、sh

2010-05-17 09:42:00 624

转载 Sizeof与Strlen的区别与联系(转)

Sizeof与Strlen的区别与联系(转)1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以/0结尾的。sizeof还可以用函数做参数,比如: short f

2010-05-12 16:53:00 320

转载 Compiling Hydrax 0.5.1 with Ogre 1.7

Compiling Hydrax 0.5.1 with Ogre 1.7 (Cthuga)Heres a quick guide to compile the new Hydrax with the new Ogre.Note that the changes are backwards compatible, so they will work con 1.6 tooSimpleGri

2010-04-28 10:11:00 709

转载 材质脚本属性

材质脚本属性  顶层Material属性 属性名                   值的格式                  描述lod_distances               [ ... ]        LOD的距离列表receive_shadows             |                  阴影是否会投在这个物体上(默认为on)  transparency_

2010-04-27 11:10:00 451

原创 不能将参数 1 从“std::string”转换为“const wchar_t *”

string pn;fstream iof;iof.open(pn,ios::in);open不能将参数 1 从“std::string”转换为“const wchar_t *”iof.open(pn.c_str(),ios::in);    

2010-04-21 22:01:00 6172

转载 string转换为char*

string 是c++标准库里面其中一个,封装了对字符串的操作 把string转换为char* 有3中方法: 1。data 如: string str="abc"; char *p=str.data(); 2.c_str 如:string str="gdfd";     char *p=str.c_str(); 3 copy 比如 string str="hello"; char p[40]; s

2010-04-19 09:27:00 571

转载 节点的删除 - 同时删除所有绑定要节点上的对象

1.关于节点的删除:   1.分析:    0.SceneManager从节点列表中删除节点    1.要从父节点中删除该节点.    2.基于Ogre设计的设计.SceneNode没有提供销毁movableObject对象的函数.但是有解绑与遍历movable的能力.此问题简单为解绑movable    3.节点上一般都拥有一系列的MovableObject对象.绑定在其上的MovableObj

2010-04-08 20:37:00 910

转载 itoa函数

itoa函数 #include#includeint main(){ int num = 10; char str[100]; itoa(num, str, 2); printf("%s/n", str); return 0;}itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是目标字符串,第三个参数是转移数字时所用 的基数。在上例中,转换基数为1

2010-04-02 14:44:00 1045

转载 一个将string转换为 const* char的函数

   const * char c_str()    一个将string转换为 const* char的函数。    string的c_str()返回的指针是由string管理的。它的生命期是string对象的生命期。然后可以按C的方式使用这个指针,或把它的内容复制出来。    例如:        string s;        cin>>s;        const char *ch=s.

2010-04-01 20:09:00 10452

转载 从int 到string的几种方法

从int 到string的几种方法 1.   int sprintf( char *buffer, const char *format [, argument] ... );      例如:      int ss;      char temp[64];      string str;      ss = 1000;      sprintf(temp, "%d", ss);    

2010-03-31 19:55:00 488

转载 Math.clamp(number,lo,hi) +

Math.clamp(number,lo,hi) +SWiSH Player Support SWF4 or later - Supported Internally Syntax Math.clamp(number, lo, hi) Arguments All are numbers or expressions. number : Value to be clamped. lo : Low

2010-03-31 15:15:00 5587

转载 wxWidgets 中各字符串格式转换

在C++里常用类型转换感觉很杂,不好用;跟C#没得比:可以强类型转换,还有convert通用的转换,非常方便的说。刚用wxwidget时类型转换也是一头大,了解后发现要比MFC简洁好用多,接口也容易记住。下面上WXWIDGET常用类型转换:一、wxstring与其他类型转换1.1 int to wxString: wxString str = wxString::Format(wxT("%i"),

2010-03-26 15:15:00 2563

原创 开始

1.OGRE1.7.0 + wxWidgets2.8.0不打算使用ETM插件,而是用OGRE1.7.0自带的terrain component,OGRE1.7.0采用了MIT授权 2.Plugin_OctreeSceneManager:以八叉树空间管理为基础的OctreeSceneManager(八叉树场景管理器——OSM)。同时包含了从其中派生出来的T

2010-03-19 08:22:00 640

转载 CEGUI安装、编译、运行总结

花了两天时间,总算把Sample下的例子跑成功了,真不容易啊,呵呵,现把遇到的问题解决等做个小小的总结吧,供初学者交流参考,若有说错的地方,欢迎指正。1、  下载:http://www.cegui.org.uk/wiki/index.php/Downloads最新版本为0.7.1,点进去后会发现有多个download链接,简单翻译下:a)         CEGUI 0.7.1 Lib

2010-03-18 09:48:00 1700 2

转载 手把手教你如何配置和编译ogre 1.7.0 + cegui 0.7.1

http://www.cnblogs.com/oiramario/archive/2010/03/03/1677461.html ogre 1.7.0的下载、配置和编译指南----------------------------------------------- 1.  ogre 1.7.0的下载地址:https://sourceforge.net/projects/ogre/file

2010-03-17 21:59:00 888

转载 VS2005的fstream对于中文路径支持

几天发了这篇《用fstream对二进制文件的读写》,有朋友指出了VS2005的fstream对于中文路径支持不好的bug。我想大概是因为VS2005更加重视了对字符串的全球化支持,所以鼓励我们使用unicode编码的字符串,对于MBCS之类的支持可能就疏忽了吧。    我搜索了一下这个问题的解决,参考了如下资料写了演示代码。fstream 和 中文路径 c++博客 About unicod

2010-03-14 16:39:00 562

转载 wxstring和string转换

由于wxWidget主要使用wxString字符串类型,而C++程序员经常使用STL,因此存在wxString与std::string之间的转换,下面举例来说明它们之间的转换.           1. std::string -> wxString               string   strstring = "string";               wxString 

2010-03-14 13:34:00 3139

原创 wxWidgets中获得屏幕分辨率

需要包含头文件#include 使用静态函数:int width = wxSystemSettings::GetMetric(wxSYS_SCREEN_X, NULL);int height = wxSystemSettings::GetMetric(wxSYS_SCREEN_Y, NULL);获得当前系统的屏幕分辨率的大小.

2010-03-08 18:06:00 1789

原创 typedef的四个用途和两个陷阱

用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb;  // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,  // 和一个字符变量; 以下则可行: typedef char* PCHAR;  // 一般用大写 PCHAR pa, pb;        // 可行,同时声明了两个指向字符变量的指针 虽然: char *

2010-03-06 20:09:00 374

转载 在VS2005中配置LUA

辛苦写了1小时,居然没了。。。。这是第2次写的东西。1、编译LUA第1步:从官方主页www.lua.org下载Lua源代码,最新版本为5.1.2。解压之后找到“src”文件夹,这里面就是Lua了,不过还不能直接使用。第2步:使用任意ANSI C编译器,在这里使用VS2005编译LUA。具体步骤如下:1、新建一个空的Console工程,在这里该工程名暂为“lua”2、将src中的文件全部

2010-03-05 15:18:00 643

Windows 程序设计

英文版,中文繁体版,中文简体版,chm格式 如果对Windows开发有什么问题的话,请翻阅PetZold的著作吧。在《Window程序设计》(第5版)中,这位杰出的“Windows先锋奖”(Windows Pioneer Award)获得者根据最新的Windows操作系统权威技术修订了他的经典著作——再一次演示了基本的Win32程序设计的API核心内容。本书的内容包括: ** 基本内容——输入、输出和对话框 ** Unicode概述 ** 图形——绘图、文本和字体、位图和元文件 ** 内核和打印机 ** 声音和音乐 ** 动态链接库 ** 多任务和多线程 ** 多文档界面 ** Internet和 Intranet的程序设计 其中采用的大多是具有代表性的示例,这本Petzold著作为使用 Windows 95、Windows 98或 Windows NT的各级windows程序员提供了最基本的参考和指导。没有经验的开发人员也可以从中获取大量的新知识。

2009-05-04

3D游戏与计算机图形学中的数学方法

本书介绍了开发专业级三维图形引擎所需的数学方法,书中介绍的关于游戏开发方面的许多知识同样适用于三维计算机图形学相关的应用。本书首先介绍了相当基础和知识,如何向量几何和线性代数,然后继续介绍一些计算机游戏设计中的高级知识,如光照和可视性判断。另外,本书还给出了一些重要结论的推导过程,以便于不具备相应理论基础的读者理解相关内容。   本书要求读者已具备三角学及其计算方法方面的基础知识,不过,本书仍然在一些章节中概括介绍了这些知识中的一些重要工具,如三角恒等式、微分议程和泰勒级数等。本书牟于游戏设计者及相应的编程人员来说,是一本不可多得的参考资料。   本书介绍了开发专业级三维图形引擎所需的数学方法,书中介绍的关于游戏开发方面的许多知识同样适用于三维计算机图形学相关的应用。本书首先介绍了相当基础和知识,如何向量几何和线性代数,然后继续介绍一些计算机游戏设计中的高级知识,如光照和可视性判断。另外,本书还给出了一些重要结论的推导过程,以便于不具备相应理论基础的读者理解相关内容。   本书要求读者已具备三角学及其计算方法方面的基础知识,不过,本书仍然在一些章节中概括介绍了这些知识中的一些重要工具,如三角恒等式、微分议程和泰勒级数等。本书牟于游戏设计者及相应的编程人员来说,是一本不可多得的参考资料。

2009-04-27

3D Math Primer for Graphics and Game Development

This book covers fundamental 3D math concepts that are especially useful for computer game developers and programmers.

2009-04-27

LaTeX科学文件处理软件入门

LaTeX(LATEX)是一种基于TeX的排版系统,由美国计算机学家Leslie Lamport在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。

2009-04-27

掌握和精通Matlab

pdf格式 内容简介本书系统详实地讲述了最新版MATLAB的五大通用功能:数值计算功能(Numeric)、符号计算功能(Symbolic)、数据可视化功能(Graphic)、数据图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。由于这五大功能在命题构思、模型建立、仿真研究、假想验证、数据可视、报告总成和论文撰写各个环节中的非凡能力,使MATLAB在线性代数、矩阵分析、数值计算及优化、数理统计和随机信号分析、电路与系统、系统动力学、信号和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统、财政金融等众多领域的理论研究和工程设计中得到了广泛应用。书中数百个算例将有力地帮助读者理解和掌握MATLAB的这五个功能。本书既可作为理工科院校研究生、本科生系统学习MATLAB的教材,又可以作为广大研究人员、工程技术人员掌握和精通MATLAB的自学用书。

2009-03-02

空空如也

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

TA关注的人

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