参考文章:

http://www.vislab.cn/bbs/viewthread.php?tid=5079&page=1&extra=#pid19477

http://tieba.baidu.com/p/158804595

一开始,使用上文的第二种方法,即将给的

(1) vtkFTGLChineseCharacterMapper
(2) vtkFreeTypeUtilitiesUnicode
(3) vtkTextPropertyUnicode

三个文件加到工程,在工程的include中增加freetype的包含路径,并从vtk5.10源码中拷了ftgl和fonts相关的头文件,增加了ftgl命名空间的引用。解决了编译错误。

但出现链接错误:DLL中调用的 render(const wchar_t * , ...)  和  Advance(const wchar_t * , ..) 方法不一致。仔细查看了下,发现原因是:

在vtk源码的编译工程中,vtkftgl中的 wchar_t 类型竟然是 unsigned long 型的,而现在使用的工程中,wchar_t 是unsigned short型的。

故需更改vtk源码中wchar_t的声明值,使其为unsigned short型,并重新编译。但如何更改,没有发现。希望有发现的可以告诉我一声。

于是采用了参考文章中的第一种方法,将这三个类放到vtk的Rendering目录下,重新编译vtkrendering工程,将新的vtkrendering.lib和dll拷到VTKDIR下,发现可以使用了。

一个改动,将vtkFTGLChineseCharacterMapper.cpp中的

MultiByteToWideChar() 使用方式改为如下动态申请:
        WCHAR* sResult = NULL;
int textlen = MultiByteToWideChar(, , this->Input, -, NULL, );
sResult = (WCHAR*) malloc((textlen + ) * sizeof(WCHAR));
memset(sResult, , (textlen + ) * sizeof(WCHAR));
MultiByteToWideChar(, , this->Input, -, sResult, textlen);
font->render(sResult,ftgl_context);
if(sResult)
delete sResult;

不足: 换行问题,试了\r\n都无法解决。。。感觉转为Unicode没问题,难道是ftgl的版本过老?

vtk 中文显示的更多相关文章

  1. 【python之路2】CMD中执行python程序中文显示乱码

    在IDLE中执行下面代码,中文显示正常: # -*- coding:utf-8 -*- st=raw_input("请输入内容")print st 但在CMD中执行e:\hello ...

  2. Linux中文显示乱码?如何设置centos显示中文

    Linux中文显示乱码?如何设置centos显示中文 怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码.出现这个情况一 ...

  3. [django]Django站点admin支持中文显示和输入设置

    正文: Django站点admin支持中文输入设置,操作如下: 1 需要确定的你的数据库的client客户端和服务端的编码设置为utf-8,如果不是,请将其设置成utf-8编码,我采用mysql,详情 ...

  4. Xshell个性化设置,解决Xshell遇到中文显示乱码的问题

    在同事的推荐下,今天开始使用Xshell连接Linux,但是发现一个“遇到中文显示乱码”的问题, 同事的解决方案如下: 平常给Linux上传文件之前,先把文件转换成UTF-8编码形式, 然后设置Xsh ...

  5. python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)

    最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...

  6. (转)sqlplus中文显示乱码的问题

    sqlplus中文显示乱码的问题 2010-07-19 11:33:26 分类: LINUX 在windows下sqlplus完全正常,可是到linux下,sqlplus中文显示就出问题了,总是显示“ ...

  7. wkhtmltopdf中文显示空白或者乱码方框

    中文乱码或者空白解决方法 如果wkhtmltopdf中文显示空白或者乱码方框 打开windows c:\Windows\fonts\simsun.ttc拷贝到linux服务器/usr/share/fo ...

  8. 在WCF数据访问中使用缓存提高Winform字段中文显示速度

    在我们开发基于WCF访问方式的Winform程序的时候,一般情况下需要对界面显示的字段进行中文显示的解析.如果是硬编码进行中文显示,那么除了不方便调整及代码臃肿外,性能上没有什么问题,但是不建议这样处 ...

  9. GB2312、GBK和UTF-8三种编码以及QT中文显示乱码问题

    1.GB2312.GBK和UTF-8三种编码的简要说明 GB2312.GBK和UTF-8都是一种字符编码,除此之外,还有好多字符编码.只是对于我们中国人的应用来说,用这三种编码 比较多.简单的说一下, ...

随机推荐

  1. 使用ListView 时,遇到了 Your content must have a ListView whose id attribute is 'android.R.id.list' 错误

    今天在开发Android小应用的时候,使用到了ListView,在使用自己创建的listview风格的时候,就出现了如标题的错误提示信息,这个就让我纳闷了,以前也不会出现这个问题啊,而且也可以运行,赶 ...

  2. html input 文本框的一些操作(限制输入...)

    1.取消按钮按下时的虚线框 在input里添加属性值 hideFocus 或者 HideFocus=true 2.只读文本框内容 在input里添加属性值 readonly 3.防止退后清空的TEXT ...

  3. 解决kernel headers报错

    Make sure you have updated version $ sudo apt-get update Search for kernel version (optional) $ apt- ...

  4. NSCondition的用法,NSCondication实现线程同步,生产者消费问题实现(转载)

    NSCondition的用法 使用NSCondition,实现多线程的同步,即,可实现生产者消费者问题. 基本思路是,首先要创建公用的NSCondition实例.然后: 消费者取得锁,取产品,如果没有 ...

  5. java常用指令

    javac 编译java源文件到字节码文件 -d XXX 1.指定编译后的字节码文件存放位置. 2.若编译的java源文件中使用包名,则根据包名生成相应的子目录 javac -d . Hello.ja ...

  6. 理解pkg-config工具

    你在 Unix 或 Linux 下开发过软件吗?写完一个程序,编译运行完全正常,在你本机上工作得好好的,你放到源代码管理系统中.然后,告诉你的同事说,你可以取下来用了.这时,你长长的出了一口气,几天的 ...

  7. LA 6474 Drop Zone (最小割)

    题目链接 要添最少的挡板使所有的'D'不存在到达网格外的路径. 以每个格子向四个方向中可以到达的格子连容量为1的边, 从源点向所有'D' 连容量为4的边,网格外的点向汇点连一条容量为4的边. 答案就是 ...

  8. Queue学习

    Queue在Python中可以算作是一种容器,但是他和list,set,dict不一样. 1. Queue不是Python内置类型.它在Queue模块中定义. 2. 它不是iterator容器,他不能 ...

  9. Ubuntu Apache 伪静态配置 url重写 步骤

    1.加载rewrite模块sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.l ...

  10. Valid Phone Numbers

    Given a text file file.txt that contains list of phone numbers (one per line), write a one liner bas ...