Win7 64位 VS2015环境编译cegui-0.8.5

Posted KILEYI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Win7 64位 VS2015环境编译cegui-0.8.5相关的知识,希望对你有一定的参考价值。

首先是去官网下载源码与依赖库

http://cegui.org.uk/

 

然后得提一下,编译DX11版本带Effects11框架的话会有问题,也就是默认情况编译有问题,这是因为VS2015升级后编译器对operator new和delete做了更改。

具体看微软说明

https://msdn.microsoft.com/zh-cn/library/mt612856.aspx

简单的说,就是修改

DXSDK2010June\Samples\C++\Effects11\Inc\d3dxGlobal.h

来到667行,把定义换成声明

static void* __cdecl operator new(size_t s, CDataBlockStore &pAllocator)
{
D3DXASSERT( s <= 0xffffffff );
return pAllocator.Allocate( (UINT)s );
}

static void __cdecl operator delete(void* p, CDataBlockStore &pAllocator)
{
}

换成

void* __cdecl operator new(size_t s, CDataBlockStore &pAllocator);
void __cdecl operator delete(void* p, CDataBlockStore &pAllocator);

并在

DXSDK2010June\Samples\C++\Effects11\d3dxGlobal.cpp

文件尾定义

void* __cdecl operator new(size_t s, CDataBlockStore &pAllocator)
{
D3DXASSERT(s <= 0xffffffff);
return pAllocator.Allocate((UINT)s);
}

void __cdecl operator delete(void* p, CDataBlockStore &pAllocator)
{
}

别问我为什么不直接写在头文件里,直接写后面再链接会有问题,我也不知道为什么,这样分开写就正确了。

 

然后回到正文cegui上,和上一版本差不多,先编译依赖库

cegui-deps-0.8.x-src

CMakeLists.txt拖到cmake上,默认就OK

然后分别编译出debug和release版本

编译完成后会生成dependencies目录,把这个目录移动到cegui-0.8.5根目录内

并把

dependencies\bin

添加到系统环境变量中

然后同理CMakeLists.txt编译cegui库,默认就OK

打开工程编译cegui,最后提示错误,还是老问题

技术分享

定位到GameMenu.cpp文件694行

全部替换

reinterpret_cast<const encoded_char*>("?")

reinterpret_cast<const encoded_char*>("d")

搞定,全剧终,放STAFF列表

 

以上是关于Win7 64位 VS2015环境编译cegui-0.8.5的主要内容,如果未能解决你的问题,请参考以下文章

Win7 64位 VS2015及MinGW环境编译矢量库agg-2.5和cairo-1.14.6

使用VS2015 编译 64位的boost库

qt4.8.7 源码在win7+vs2010环境的x64编译(qt 64位)

win7(64位旗舰版)visual studio 2017无法安装及vs2015闪退问题解决方式

在Win7 64位旗舰版下,利用Vs2008编译64位的Qt 4.8.2

在Win7(64位)使用VS2015运行《OpenGL编程指南》第八版第一章程序的方法