vtk 中文显示
参考文章:
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 中文显示的更多相关文章
- 【python之路2】CMD中执行python程序中文显示乱码
在IDLE中执行下面代码,中文显示正常: # -*- coding:utf-8 -*- st=raw_input("请输入内容")print st 但在CMD中执行e:\hello ...
- Linux中文显示乱码?如何设置centos显示中文
Linux中文显示乱码?如何设置centos显示中文 怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码.出现这个情况一 ...
- [django]Django站点admin支持中文显示和输入设置
正文: Django站点admin支持中文输入设置,操作如下: 1 需要确定的你的数据库的client客户端和服务端的编码设置为utf-8,如果不是,请将其设置成utf-8编码,我采用mysql,详情 ...
- Xshell个性化设置,解决Xshell遇到中文显示乱码的问题
在同事的推荐下,今天开始使用Xshell连接Linux,但是发现一个“遇到中文显示乱码”的问题, 同事的解决方案如下: 平常给Linux上传文件之前,先把文件转换成UTF-8编码形式, 然后设置Xsh ...
- python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)
最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...
- (转)sqlplus中文显示乱码的问题
sqlplus中文显示乱码的问题 2010-07-19 11:33:26 分类: LINUX 在windows下sqlplus完全正常,可是到linux下,sqlplus中文显示就出问题了,总是显示“ ...
- wkhtmltopdf中文显示空白或者乱码方框
中文乱码或者空白解决方法 如果wkhtmltopdf中文显示空白或者乱码方框 打开windows c:\Windows\fonts\simsun.ttc拷贝到linux服务器/usr/share/fo ...
- 在WCF数据访问中使用缓存提高Winform字段中文显示速度
在我们开发基于WCF访问方式的Winform程序的时候,一般情况下需要对界面显示的字段进行中文显示的解析.如果是硬编码进行中文显示,那么除了不方便调整及代码臃肿外,性能上没有什么问题,但是不建议这样处 ...
- GB2312、GBK和UTF-8三种编码以及QT中文显示乱码问题
1.GB2312.GBK和UTF-8三种编码的简要说明 GB2312.GBK和UTF-8都是一种字符编码,除此之外,还有好多字符编码.只是对于我们中国人的应用来说,用这三种编码 比较多.简单的说一下, ...
随机推荐
- node里如何查看浏览器信息
'use strict'; let http = require(`http`); http.createServer((req, res) => { console.log(req.heade ...
- 原生JS与jQuery文档加载完毕的写法
HTML是有执行顺序的,默认是自上而下执行.所以当我们的js代码在html代码下边的时候,可以正常执行,而当我们的js代码在html代码上边的时候,可以就无法正常执行了,这时,我们需要在文档加载完毕的 ...
- 乐视手机查看运行内存方法、EUI(Eco User Interface)乐视系统查看手机运行内存方法
点击按钮,左下角,方格, 显示如下:
- WPF中的资源简介、DynamicResource与StaticResource的区别(转)
什么叫WPF的资源(Resource)?资源是保存在可执行文件中的一种不可执行数据.在WPF的资源中,几乎可以包含图像.字符串等所有的任意CLR对象,只要对象有一个默认的构造函数和独立的属性. 也就是 ...
- sql - 以半月,每月 分组
按半月:完整代码: SELECT siteNumber [站点], CONVERT(VARCHAR(7),day,120)+'-'+ case when day(day) between 1 and ...
- A除以B_2
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格 ...
- tomcat发布项目时,空文件夹未发布成功
问题背景: 项目发布到服务器时,缺少文件夹,到时向此文件夹写数据时发生错误. 后来经查,缺少这个文件夹,项目部署发布时,并不会把空文件夹发布上去 解决: 1.在空文件中加入,一个文件.就可以发布成功 ...
- 在treeview外加一个滚动条的实现
前台代码: <div style="overflow:auto;width:190px;height:280px;border:1px solid #336699;padding-le ...
- 安卓开发之viewpager学习(头条显示)
activity_luancher.xml代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res ...
- 一种实现C++反射功能的想法(二)
在介绍我的思路前, 让我们准备下预备知识 C++是怎么实现类函数的绑定的. 我们知道类的非静态成员函数是存储在全局区, 并在内存中只保存一份副本. 我们调用非静态成员函数是通过类对象进行调用. 那么如 ...