vs2010环境编译CEGUI,以及0x标准的nullptr关键字
来源:互联网 发布:为什么淘宝点不开客服 编辑:程序博客网 时间:2024/05/21 04:00
总的来说用VS2010编译CEGUI_0.7.1跟用2008和2005编译步骤差不多,网上也有了不少教程,这里我简单描述一下:
1.去官网下载源码包和依赖库包
http://www.cegui.org.uk/
下载最新的0.7.1的就可以,依赖包下载vs2010的
2.把依赖包解压后的dependencies文件夹放在CEGUI-0.7.1目录下
3.进入CEGUI-0.7.1/projects/premake文件夹,运行built_vs2008.bat和build_samples_vs2008.bat
这里CE编写了一个专门的程序来生成对应版本的的sln。但是这里没有2010的,没关系,使用2008的转换一下就可以。
4.使用vs2010打开CEGUI.sln
按提示对话框转换成2010的sln。
5.修改源代码
这样直接编译的话会出现编译错误,描述如下:
1> CEGUIMultiColumnList.cpp
1>d:/program files/microsoft visual studio 10.0/vc/include/xmemory(205): error C2440: 'initializing' : cannot convert from 'int' to 'CEGUI::ListboxItem *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
这里明显是模板参数不能推导,vs2010的STL在模板参数检查上更严格,CEGUI原来的代码使用0来作为空指针将无法推导成CEGUI::ListboxItem *类型。也就是以前传统的C++编程常用的以0(NULL宏)来代表空指针的方法将被vs2010的STL拒绝。而支持了c++0x标准的vc10则在语法上定义了一个关键字来代表空指针:nullptr。
那么解决方法是把CEGUIMultiColumnList.cpp的第702行由
d_grid[i].d_items.insert(d_grid[i].d_items.begin() + position, 0);
改成
d_grid[i].d_items.insert(d_grid[i].d_items.begin() + position, nullptr);
在查阅MSDN后发现,nullptr是提供给托管和本地两种C++语言,而__nullptr仅仅提供给本地C++。在使用vs2010开发的时候,可以直接使用__nullptr关键字。
接下来可以编译debug和release的代码了。
6.编译sample
按照上面的步骤编译sample的sln即可。这里不需要修改代码。
运行示例如下图。
- vs2010环境编译CEGUI,以及0x标准的nullptr关键字
- Win7+VS2010环境下CEGUI 0.8.4编译过程详解
- Win7+VS2010环境下CEGUI 0.8.4编译过程详解
- Win7+VS2010环境下CEGUI 0.8.4编译过程详解
- vs2005环境下编译CEGUI 0.6.0
- vs2005环境下编译CEGUI 0.6.0
- vs2005环境下编译CEGUI 0.6.0
- vs2005环境下编译CEGUI 0.6.0
- C++11的关键字nullptr
- nullptr关键字
- CEGUI 0.7.7 VS2010+SP3 编译过程
- OGRE+vs2010编译CEGUI SDK
- cegui的编译
- VS2010下搭建Ogre+CEGUI+OpenAL环境
- VS2010下搭建Ogre+CEGUI+OpenAL环境
- VS2010+WDK(7.x)环境下编译WDK驱动程序的时候如果出现下面的错误
- VS2010+OSG3.2+CEGUI 0.8.4环境下实现简单的HelloWorld程序
- C++ 0x 新特性(5):Nullptr
- JAVA NIO的实例
- 中国山寨产业核心价值在产业链两极
- C++ TIPS
- 移动硬盘安装Ubuntu10.04
- 怎么赚积分啊!?
- vs2010环境编译CEGUI,以及0x标准的nullptr关键字
- linux下make命令详解
- Asp.net 日期格式化
- freetype 使用小结
- 最全面的LOTUS公式学习手册
- 最全面的LOTUS公式学习手册
- CreateEvent Global//
- 关于common-fileupload的一些网络资料1
- C语言中const初探