当前位置: 首页 > 工具软件 > Xface > 使用案例 >

XFace的编译和使用(未全部解决)

应和光
2023-12-01

    XFace是一个开源虚拟人脸动画工具软件,使用MPEG4的人脸模型定义(FDP)和动画参数(FAP),已经很久没有更新过了。网址http://xface.fbk.eu/   。

    重新编译XFace的代码,需要多个第三方的库,如boost,SDL,wxWidgets和xerces。

    编译环境为win7x64,vs2008。

    在目前版本的XFace(1.0版本),我使用boost1.5.2(较早的版本应该也没问题),SDL(版本没关系),wxWidgets(2.8.12)。需要说明的是wxWidgets的2.6.x和2.9.x在编译中都存在问题(如wxSAVE,wxFILE_MUST_EXIST等undeclared identifier错误,可以通过修改代码解决,但是不推荐)。XFace的文档中说2.6.2在vs2003中可以使用,这可能是编译环境的不同导致。SDL的开发库有x86和64位版本可选,在win7x64+vs2008的环境下,应使用x86版本的SDL开发库。

    编译后,release版本可正常运行,也可以进入调试状态。但是Debug版本无法运行,缺少未指明的dll,目前未能解决。


   自己做了一个基于xface+directshow的应用,编译中出现的两个错误:

  1.    Need to include strsafe.h after tchar.h

   使用graphbase.cpp中开始加入 include <tchar.h>. 很多人写需要windows.h  我这里没用

  2. EXECUTE_ASSERT , ASSERT 未定义,仅在wxwidgets和diretshow一起使用的时候出现

'EXECUTE_ASSERT': identifier not found

   原因是wxdebug.h这个文件在wxwidget和directshow中都存在,但内容不同。如果要使用directshow中的wxdebug,在include <streams.h>前使用

#ifdef __WXDEBUG__
#undef __WXDEBUG__
#endif
#include <streams.h>

 p.s. 用VC2008编译VC6的东西,链接时出错:LINK : fatal error LNK1104: cannot open file 'LIBCD.lib' 

         MSDN说是可以把LIBCD.lib这个库给忽略掉,做法如下: Project -> Properties -> Linker -> Command Line -> Additional options 中加入:/nodefaultlib:libcd


 

   

  


  

 类似资料: