首先是去官网下载源码与依赖库
然后得提一下,编译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列表